cmake、make、make install

如果經常在Linux系統下面與C、C++文件打交道的話,一定經常遇到四/五步走:

mkdir build
cd build
cmake ..
make
// 如果是安裝依賴庫的時候會用到
make install

前兩步並不難理解,就是想把對應項目的編譯文件放在build目錄下,這樣便於管理。如果要傳送源文件,可以直接刪除build文件夾。

編寫程序的主要步驟

  1. Edit: 使用編輯器編寫源代碼,如.c,.cc,.cpp等文件。
  2. Compile: 使用編譯器編譯源代碼生成目標文件,如.o,.a(Linux下靜態庫),.so(Linux下共享庫)等文件。
  3. Link: 使用連接器鏈接目標代碼生成可執行文件,如.exe(Window),.out(Unix)等文件。

cmake

通過編寫cmakelist文件,自動生成makefile。

make

make可以用來批處理.c或.cpp文件的,它從makefile中讀取相應指令,然後編譯。

make install

將 make 生成的文件安裝到系統的對應目錄中,比如從github上下載下來一個依賴庫的安裝包,解壓後經過上面幾步,該依賴庫的對應頭文件和庫文件就安裝到系統中了。

一般來說,大部分的依賴庫安裝步驟完成後。庫的頭文件在 /usr/local/include/dependency_name/ 目錄下,庫文件則存在 /usr/local/lib/目錄下。所以,安裝完成後可以去相應目錄下查看是否有對應的文件,如果則初步說明安裝成功。或者去網上搜一些測試程序跑跑看是否正確調包並執行。

Pipeline

文件 --> cmakelist --> cmake --> makefile --> make --> 可執行文件

示意圖[1]如下:

在這裏插入圖片描述

CMakeList.txt

#project name
PROJECT(test_math)
#head file path
INCLUDE_DIRECTORIES(
include
)
#source directory
AUX_SOURCE_DIRECTORY(src DIR_SRCS)
#set environment variable
SET(TEST_MATH
${DIR_SRCS}
)
#add executable file
ADD_EXECUTABLE(../bin/bin ${TEST_MATH})
#add link library
TARGET_LINK_LIBRARIES(../bin/bin m)

這是一個測試數學函數的程序的CMakeLists.txt,"#"後面爲註釋的內容,CMake的命令全部爲大寫

第2行指定生成的工程名爲test_math

第4行指定頭文件目錄爲include

第8行指定源文件目錄爲src,並將其賦值給環境變量DIR_SRCS

第10行設定環境變量TEST_MATH的值爲環境變量DIR_SRCS的值,此處用於顯示如何用環境變量對環境變量進行賦值

第14行將數學函數庫賦值給環境變量LIBRARIES,當然,可以不用這個環境變量,而在後面直接使用該庫名

第18行用於指定生成文件,將環境變量TEST_MATH目錄下的所有文件編譯生成…/bin目錄下的可執行文件bin

第20行指定…/bin/bin執行時的鏈接庫爲環境變量LIBRARIES的值-libm.so

參考

https://blog.csdn.net/u012150179/article/details/17852273

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