ttposted @ 2023年10月13日 03:38 in
cmake , 25057 閱讀
cmake是乙個跨平台的安裝(編譯)工具,可以用簡單的語句來描述所有平台的安裝(編譯過程)。他能夠輸出各種各樣的makefile或者project檔案,能測試編譯器所支援的c++特性,類似unix下的automake。
cmake的所有的語句都寫在乙個叫:cmakelists.txt的檔案中。當cmakelists.txt檔案確定後,可以用ccmake命令對相關 的變數值進行配置。這個命令必須指向cmakelists.txt所在的目錄。配置完成之後,應用cmake命令生成相應的makefile(在unix like系統下)或者 project檔案(指定用window下的相應程式設計工具編譯時)。
其基本操作流程為:
$> ccmake directory
$> cmake directory
$> make
其中directory為cmakelist.txt所在目錄;
cmake的執行就是這麼簡單,其難點在於如何編寫cmakelists.txt檔案,下面結合例子簡單介紹cmakelists.txt的編寫,看下面這個cmakelists.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
$ )
#set extern libraries
set(libraries
libm.
so )
#add executable file
add_executable
(../bin/bin $
) #add link library
target_link_libraries
(../bin/bin $
) 或者用下面這個cmakelists.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
$ )
#add executable file
add_executable
(../bin/bin $
) #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
下面給出原始檔
/src/main.c:
#include
#include"../include/a.h"
int main
() /src/a.c
#include"../include/a.h"
double get_sqrt
(double var1
) /include/a.h
#ifndef a_file_header_inc
#define a_file_header_inc
#include
double get_sqrt
(double var1
);#endif
將cmakelists.txt放在當前目錄下,執行cmakelists.txt
$> cmake .
$> make
即可生成可執行檔案,在目錄/bin下的bin檔案,好了執行看其效果是否和所想一樣。
工具 cmake教程
檔名稱 cmakelists.txt 檔案內容 乙個總工程的根目錄 宣告要求的 cmake 最低版本 cmake minimum required version 2.8 宣告乙個 cmake 工程 project robotics 設定編譯模式 set cmake build type debug...
編譯配置工具 CMake
cmake是乙個比make更高階的編譯配置工具,主要編寫cmakelists.txt檔案,然後使用cmake指令生成makefile檔案.cmake編譯 cmake directory makedirectory是cmakelist.txt所在目錄 command args.command是命令名,...
Linux下cmake使用簡介
cmake好像都說比直接寫makefile牛一點,因為它可以自動生成makefile。專門針對檔案比較多的情況,要不是這幾天在用別人的 一大堆,我覺得用makefile也夠了,但是據說linux程式設計師必備技能啊,所以還是要學學這麼高階的東西。在源 目錄src中建立cmakelists.txt檔案...