Linux基礎知識:軟件源碼的編譯與編譯工具make & cmake

Linux基礎知識:軟件源碼的編譯與編譯工具make & cmake

make是經典編譯工具,cmake 是一種跨現代化的平臺編譯工具,可在不同平臺上優化編譯工作,比 make 更爲高級和現代化一點。

cmake主要是編寫 CMakeLists.txt 文件,用cmake命令將 CMakeLists.txt 文件轉化爲 make 所需要的 makefile 文件,最後用 make 命令編譯源碼生成可執行程序或共享庫.

make

常用命令

# 編譯
make
# 生成配置腳本,方便自定義編譯參數。
# 一般軟件源碼內,自帶了 configure。
make configure
# 查看編譯幫助
./configure -help
# 安裝
make install
# 卸載,只支持編譯安裝的軟件
make uninstall
# 清理 make 緩存
make clean
# 深度清理
make distclean

configure 是一個shell腳本,它可以自動設定源程序以符合各種不同平臺上Unix系統的特性,並且根據系統叄數及環境產生合適的Makefile文件或是C的頭文件(header file),讓源程序可以很方便地在這些不同的平臺上被編譯連接。

基本編譯流程

# 進入軟件源碼目錄
cd <dir>
# 查看編譯幫助,或查看軟件編譯文檔,如果沒有 configure,查看文檔,或 make configure
./configure -help
# 配置軟件,比如自定義安裝目錄,並啓用分享動態庫模式
./configure --prefix=<dir> --enable-shared
# 編譯 並 安裝
make && make install

--prefix 安裝目錄

--enable-shared 啓用分享動態庫模式,才能自動安裝至 lib 內,才能被其他軟件動態調用

如果編譯安裝目錄不在標準目錄的話,如 /usr/local 內,那麼不會自動安裝至 lib,需要自行手動設置 /etc/ld.so.conf.d 內的配置文件,並指定地址。最後更新 ldconfig

cmake

官網:CMake.org

常用命令

# 幫助
cmake --help
# 編譯
cmake <dir> 
# 編譯並設置自定義參數與值
cmake .. -D <var>=<value>

基本編譯流程

編譯並安裝

# 進入源碼目錄
cd <dir>
# 創建一個編譯文件夾,並進入.防止中間文件,污染源碼文件
mkdir <dir> && cd <dir>
# 1. 可直接編譯源碼,便按照 CMakeLists.txt 配置文件運行構建 Makefile 文件
cmake ..
# 2. 可設置自定義參數,設置安裝目錄,並啓用動態庫分享
cmake .. -D CMAKE_INSTALL_PREFIX=<dir> -D BUILD_SHARED_LIBS=ON
# 進行 make 安裝
make && make install

CMAKE_INSTALL_PREFIX 設置安裝目錄

BUILD_SHARED_LIBS 啓用動態庫分享

卸載

# 進入編譯文件目錄
cd <dir>
# 安裝完成後會有一個 install_manifest.txt 記錄文件的安裝地址,直接批量刪除即可
cat install_manifest.txt | sudo xargs rm

之後再刪除源碼包即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章