1.cmake是通過解析cmakelists.txt指令碼來生成專案需要的編譯檔案的。它可以生成多種不同型別的編譯檔案如makeflie、ninja等;
2.cmakelists.txt的編寫依賴大量cmake提供的函式或者巨集,如project、set等,只要掌握了這些巨集的含義,就可以讀懂cmakelists.txt,從而了解工程的結構。
其實,稱為函式或巨集並不準確。我想表達的是這些都是cmake提供好的,可以直接在cmakelists.txt中使用,他們看起來就像是c語言的巨集或者函式。
2.1 set
用法:set(varialbe,value)
例如:set(make_files, ./)
說明:設定乙個全域性的變數
2.2 include
用法:include(file or module)
例如:include(test.cmake)
說明:與c語言的include類似
2.3 include_directories
用法:include_directories(dir1 dir2 ……)
例如:include_directories(「../my/include」 「../my/include2」)
說明:用於在現有標頭檔案搜尋路徑後面增加搜尋路徑
2.4 target_link_libraries
用法:target_link_libraries( target lib1 lib2 ……)
例如:target_linke_libraries(test libmy.so)
說明:target引數一般是add_excutable中指定的程式名
2.5 project_source_dir
說明:這是cmake預定義號的乙個巨集,表示工程的根目錄,可以直接使用
2.6 link_directories
2.7 find_package
說明:當無法定位庫的具體位置時,可以使用此命令進行查詢。利用命令:cmake –help-module-list 和 cmake –help-module 來獲取幫助資訊。
例如:find_package(gtk2)
CMake使用教程
編寫的測試的檔案目錄如下 cmaketest makelists.txt config.h.in main.cpp math makelists.txt mathfunction.cpp mathfunction.h下面為每個檔案中的內容,函式的功能是分別利用自定義的庫和標準庫實現求乙個數的冪次方 ...
cmake使用教程
cmake minimum required version 3.0 project main include directories include 設定為cmmakelists.txt所在的路徑為標頭檔案搜尋路徑 link dirctories lib add executable main m...
Linux下CMake 安裝教程
cmake是乙個跨平台的自動化建構系統 其使用乙個名為 cmakelists.txt 的檔案來描述構建過程,可以產生標準的構建檔案,如 unix 的 makefile 或windows visual c 的 projects workspaces 檔案 cmakelists.txt 需要手工編寫,也...