Linux原始碼編譯軟體及管理

2021-08-14 18:47:49 字數 2786 閱讀 3135

注:本文所有內容的試驗環境為 ubuntu 14.04 和 ubuntu 16.04

基本思想:自定義路徑;自己管理。

一般來說,原始碼都包含這個工具,解壓縮後資料夾中有乙個「configure」可執行檔案即是。

以ffmpeg的編譯安裝為例:

./configure \

--prefix="/home/my/environment/ffmpeg-3.2.7" \

--extra-cflags="-i/home/my/environment/related/include" \

--extra-ldflags="-l/home/my/environment/related/lib" \

--bindir="/home/my/environment/ffmpeg-3.2.7/bin" \

--enable-gpl \

--enable-libfdk-aac \

--enable-lib***lame \

--enable-libopus \

--enable-libtheora \

--enable-libvorbis \

--enable-libvpx \

--enable-libx264 \

--enable-nonfree \

--enable-shared

路徑說明:「/home/my/environment」是軟體安裝的統一路徑,養成好習慣,管理起來會方便很多。

(更多./configure選項含義,請到這篇博文檢視:

「--prefix」:如果不指定這個選項,那麼生成的可執行檔案(ffmpeg等命令)將會放在預設路徑「/usr/local/bin」;庫檔案預設在「/usr/local/lib」;配置檔案預設在「/usr/local/etc」;其他資源在「/usr/local/share」。你要解除安裝這個程式,要麼在原來的make目錄下用一次make uninstall(前提是make檔案指定過uninstall),要麼去上述目錄裡面把相關的檔案乙個個手工刪掉。指定了「--prefix」,直接刪掉乙個資料夾就夠了。

「--extra-cflags」:標頭檔案的查詢路徑。ffmpeg的編譯需要其他庫的支援,當其他的庫不是預設安裝時,需要指定。例如:libx264庫的路徑被自定義了,其標頭檔案不在/usr/include或/usr/local/include,則需要使用該選項將libx264的標頭檔案路徑指定。

「--extra-ldflags」:庫檔案的查詢路徑,原理同上。

「--bindir」:可執行檔案的安裝路徑,請指定在「--prefix」的路徑下。

「--enable-***」:擴充套件選項,一般可忽略。

一般,「--prefix」選項都有,指定這乙個就可以了。其他選項不一定有,判斷方法也很簡單,就照上面的選項輸入,不支援的選項會報錯,把報錯項刪掉就行了。

以opencv為例:

cmake -d cmake_build_path=release -d cmake_install_prefix=/home/my/environment/opencv-3.2.0 ..

make

make install

注意一下cmake命令這一行最後的「空格和兩個點」,不能忽略。

cmake我不熟悉,選項就不做說明了。

一般我們在終端下使用命令就能執行程式,但是自定義安裝的軟體是不支援的,需要手動把可執行檔案的路徑放到系統環境變數中。

使用管理員許可權開啟「/etc/profile」檔案,在該檔案最後新增內容(仍以上述ffmpeg和opencv為例):

path=$path:/home/my/environment/ffmpeg-3.2.7/bin/

path=$path:/home/my/environment/opencv-3.2.0/bin/

儲存,然後執行:
source /etc/profile
原始碼安裝的軟體一般帶有動態庫和靜態庫,這些庫可用於我們程式設計。手動指定確實沒什麼問題,但是對ffmpeg和opencv這些包含大量庫的軟體來說手動指定太累了,通過配置,在編譯程式時可以簡單的使用「-l***」。

方法:在「/etc/ld.so.conf.d/」資料夾下新建乙個「my_lib.conf」檔案(可自定義,以.conf結尾即可),然後寫入lib路徑。

/home/my/environment/ffmpeg-3.2.7/lib

/home/my/environment/opencv-3.2.0/lib

然後在終端執行:
ldconfig
對於opencv這種編譯時要用到pkg選項的庫檔案,還需要配置pkgconfig。一般軟體編譯完都有這個。

方法也很簡單:將 /home/my/environment/opencv-3.2.0/lib/pkgconfig 路徑下的「.pc」檔案複製到路徑 /usr/local/lib/pkgconfig 下就行了(該路徑下如果有相應的舊檔案請刪除)。

標頭檔案我認為不需要配置,最多在編譯工程的時候指定一下路徑就行了。

到這裡就差不多了,平時自己開發的時候只要在工程中把相應的路徑包含進來就可以了。而且方便轉移,在同樣的系統環境下,只要把這個資料夾打包拷貝過去,就能在在別的機器上用了,省去了大把的安裝時間。最近工作中需要配置大批的系統,我就直接打包拷貝,再寫個指令碼解壓配置一下,效率非常高。

linux軟體原始碼的編譯安裝

原始出處 作者資訊和本宣告。否則將追究法律責任。軟體包的組成 1二進位制檔案 bin,sbin usr bin usr sbin usr local bin usr local sbin 2庫檔案 lib,usr lib usr local lib 3配置檔案 etc,usr local etc 4...

linux原始碼包編譯安裝軟體詳解

configure make make install原始碼安裝三部曲,一直在使用卻一直知其然不知其所以然,今天就說說所以然。原始碼到成為可執行程式經歷了一下步驟 原始碼 預處理 編譯 彙編 鏈結 執行 make就做了編譯彙編的工作,當然也也不是隨隨便便就幹活的,要有依據,那他是根據什麼幹活的呢?根...

linux 原始碼編譯安裝

tar.gz tar.bz2 的是源 包,需要編譯之後才能安裝,在編譯過程中你可以指定各種引數以適應你的系統需求,比如安裝位置,優化引數,要哪些功能不要哪些功能等等。這類源 包需要解壓後 tar.gz 的用tar zxvf 解壓,tar.bz2 的用tar jxvf 解壓 進入解壓目錄,一般都有乙個...