原创 如何移植glib至i.MX6

一、準備 glib-2.45.3 libffi-3.2.1 zlib-1.2.8 glib依賴libffi和zlib,需要先交叉編譯這2項,這2項編譯沒什麼特殊的,libffi的configure命令如下: ./configure --p

原创 H.264的profile與level概念解釋。

一、有三種主要的profile。 baseline profile, main profile, high profile profile指的是圖像的壓縮率,關係是baseline < main < high。high擁有最高的壓縮率。b

原创 ubuntu 在線更新,安裝,刪除程序包的方法。

更新: apt-get update 安裝: apt-get install *** 刪除: apt-get remove --purge *** 帶--purge可以把配置文件刪除,不帶則保留。 apt-get autoremove *

原创 virtualbox加載ubuntu,如何配置網絡?

這裏以ubuntu 12.04舉例。 網絡連接方式選擇橋接,關於橋接和NAT的區別,請參考https://blog.csdn.net/yuhengyue/article/details/78203737。   一、有線網絡 如果想讓ubu

原创 Cygwin,Msys,MinGW的區別和聯繫。

轉自:https://www.cnblogs.com/tshua/p/5932501.html Cygwin,原 Cygnus 出品(已被紅帽收購),目前是 RedHat 名下的項目。項目的目的是提供運行於 Windows 平臺的類 Un

原创 linux 私人垃圾箱的實現。

linux下的rm命令是個危險的命令,它不會把文件放入垃圾箱,而是直接刪除。有時候不小心會造成無法挽回的後果。私人垃圾箱是個解決此類問題的好辦法。它通過alias機制指向一個腳本,腳本里做的事情就是把文件mv到私人垃圾箱。 以ubuntu

原创 Makefile裏=,+=,:=,?=運算符的區別。

=給變量賦值。 +=在變量原有的值上添加新的值。 :=覆蓋變量原有的值。 ?=如果沒有定義該變量,則賦值,反之不賦。

原创 linux下Fork與Exec使用

轉自:https://www.cnblogs.com/wuchanming/p/3784862.html   一、引言   對於沒有接觸過Unix/Linux操作系統的人來說,fork是最難理解的概念之一:它執行一次卻返回兩個值。fork

原创 linux守護進程如何寫。

#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <signal.h> #include <sys/wait.h> #include "commo

原创 make的多線程編譯

因爲CPU是一個影響編譯速度的重要因素,所以make -j帶上一個參數,可以把項目在進行中的並行編譯,現在服務器上的CPU差不多都是多核多線程的,所以完全可以用make -j4,讓make最多允許4個編譯進程同時執行,這樣可以更有效的利用

原创 linux下應用程序依賴的動態庫另有依賴動態庫時,該程序該如何編譯?

假設程序test依賴動態庫b,而動態庫b依賴動態庫a。 在編譯test的時候,我們希望的是隻指定b,而不用指定a,因爲我們不希望知道a的依賴庫有哪些,只需關心b。那麼我們採用這樣的思路去編譯test的時候,是會報錯的。比如: 我們編譯動態

原创 linux下程序鏈接多個靜態庫,提示找不到函數鏈接的問題。

有時候你會發現函數所在的靜態庫,明明在Makefile裏指定了,但是還是會報錯,提示找不到。 原因就在於靜態庫之間有依賴關係以及鏈接順序問題。書寫在右邊的庫最先被鏈接。 解決辦法: 一般來說有兩種辦法,一種是仔細分析依賴關係,並按照正確的

原创 virtualbox下的ubuntu如何連接無線網?

方法很簡單, 在啓動ubuntu之前,進行“設置”->“網絡”,選擇橋接方式,網卡選無線網卡即可。進入ubuntu,ip默認dhcp方式獲得。

原创 如何指定printf的輸出顏色。

格式: printf("\033[字背景顏色;字體顏色m字符串\033[0m" ); 部分顏色代碼: 字背景顏色: 40--49                字顏色: 30--39 40: 黑                      

原创 c程序響應ctrl+c信號。

代碼很簡單,做個記錄, int quit_flag = 0; void handler(int sig) { quit_flag = 1; } int main() { signal(SIGINT,handler)