五分鐘理解CMake使用方法

2021-10-09 05:11:06 字數 2460 閱讀 2016

**(擴音想當年)

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所在目錄;

第一條語句用於配置編譯選項,如vtk_dir目錄 ,一般這一步不需要配置,直接執行第二條語句即可,但當出現錯誤時,這裡就需要認為配置了,這一步才真正派上用場;

第二條命令用於根據cmakelists.txt生成makefile檔案;

第三條命令用於執行makefile檔案,編譯程式,生成可執行檔案;

cmake的執行就是這麼簡單,其難點在於如何編寫cmakelists.txt檔案。下面結合例子簡單介紹cmakelists.txt的編寫,看下面這個cmakelists.txt。

編寫cmakelists.txt

1.#project name

2.project(test_math)

3.#head file path

4.include_directories(

5.include

6.)7.#source directory

8.aux_source_directory(src dir_srcs)

9.#set environment variable

10.set(test_math

11.$

12.)

13.#set extern libraries

14.set(libraries

15.libm.so

16.)

17.#add executable file

18.add_executable(…/bin/bin $)

19.#add link library

20.target_link_libraries(…/bin/bin $)

其中

"#"後面為注釋的內容,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()

double b=25.0;

double a=0.0;

a=get_sqrt(b);
printf(「a is %lf, b is %lf\n」,a,b);

return 0;

/src/a.c

#include"…/include/a.h"

double get_sqrt(double var1)

return sqrt(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 使用方法

cmake是乙個跨平台的安裝 編譯 工具,可以用簡單的語句來描述所有平台的安裝 編譯過程 他能夠輸出各種各樣的makefile或者project檔案,能測試編譯器所支援的c 特性,類似unix下的automake。cmake 使用方法 cmake的所有的語句都寫在乙個叫 cmakelists.txt...

Cmake 使用方法

cmake是乙個跨平台的安裝 編譯 工具,可以用簡單的語句來描述所有平台的安裝 編譯過程 他能夠輸出各種各樣的makefile或者project檔案,能測試編譯器所支援的c 特性,類似unix下的automake。cmake 使用方法 cmake的所有的語句都寫在乙個叫 cmakelists.txt...

CMake 使用方法

cmake是乙個跨平台的安裝 編譯 工具,可以用簡單的語句來描述所有平台的安裝 編譯過程 他能夠輸出各種各樣的makefile或者project檔案,能測試編譯器所支援的c 特性,類似unix下的automake。cmake 使用方法 cmake的所有的語句都寫在乙個叫 cmakelists.txt...