Linux 下不一樣編譯類型的編譯流程

1、基本概念

CMake 與 Automake 最終會轉換爲 Makefile 文件,而後執行 Makefile 相關的操做命令。

clipboard.png

1.1 Makefile

Makefile 定義了一系列的規則來指定,哪些文件須要先編譯,哪些文件須要後編譯,哪些文件須要從新編譯,甚至於進行更復雜的功能操做,由於 Makefile 就像一個 Shell 腳本同樣,其中也能夠執行操做系統的命令。html

1.2 CMake

CMake 是一個跨平臺的安裝(編譯)工具,能夠用簡單的語句來描述全部平臺的安裝(編譯過程)。他可以輸出各類各樣的makefile 或者 project 文件。node

1.3 Automake

Automake 是一種幫助自動產生 Makefile 文件的軟件。程序設計者只須要寫一些預先定義好的宏,提交給 Automake 處理後會產生一個能夠供 Autoconf 使用的 Makefile.in文件。再配合利用 Autoconf產生的自動配置設置文件 configure 便可產生一份符合 GNU Makefile 慣例的 Makeifle 了。ide

2、編譯流程

2.1 Makefile 編譯

# 編譯源碼(當前路徑爲 Makefile 文件所在目錄)
make

# 安裝編譯後的頭文件、庫文件和可執行文件(非管理員須要su)
make install

2.2 CMake 編譯

# 此處以 outside-build 爲例
mkdir build

# 在此處執行構工做,產生的全部文件均位於此處,不影響原工程文件.
cd build

# 自動構建 Makefile 文件
cmake ..

# 編譯源碼
make

# 安裝庫
make install

2.3 Automake 編譯

# 根據目標平臺實例化配置文件
autoreconf --install

# 自動構建 Makefile 文件
./configure

# 編譯源碼
make

# 安裝庫
make install

3、參考資料

相關文章
相關標籤/搜索