cmake常用語法介紹

2021-10-14 09:43:40 字數 2313 閱讀 6114

使用cmake編譯程式

cd /path/of/cmakelist.txt

cmake .

make

make install

語法

1. link_directories

查詢動態庫路徑,相當於makefile的-l選項,且該方法必須在add_library和add_executable之前

2. 鏈結靜態庫

add_library(curl static imported)

set_target_properties(curl properties imported_location /path/to/libcurl.a)

target_link_libraries($ private curl)

注意:1) 某些時候target_link_libraries需要在中間 增加private這個關鍵字,需要配合上下文來確定

2) target_link_libraries必須在add_library和add_executable之後

3. 鏈結動態庫

link_directories($/lib) #新增動態連線庫的路徑

target_link_libraries($ curl)

4. 頭檔案目錄

include_directories(/path/to/include/dir1 /path/to/include/dir2)

5. 編譯靜態庫、動態庫

add_library($ shared $)

add_library($ static $)

注意:1) 乙個cmakelists.txt裡面不能設定兩個名稱一樣的add_library

2) 如果要同時編譯靜態庫跟動態庫,且希望靜態庫和動態庫名稱一樣時(lib***.so和lib***.a而不是lib***.so和libyyy.a),可以這樣寫

add_library($ shared $)

add_library($_static static $)

#set static library name

set_target_properties($_static properties output_name $)

# cmake在構建乙個新的target時,會嘗試清理掉其他使用這個名字的庫,

# 因此,在構建libhello.a時,就會清理掉libhello.so.

# 為了迴避這個問題,設定clean_direct_output屬性為1。

set_target_properties($ properties clean_direct_output 1)

set_target_properties($_static properties clean_direct_output 1)

6. cmake_include_path 和 cmake_library_path

注意:這兩個是環境變數而不是 cmake 變數。

使用方式:cmake_include_path=/home/include cmake .

7. find_library

注意:盡量不要使用該方法。這個方法最終翻譯成-rpath選項,會指定目標檔案在該絕對路徑下查詢指定的動態庫

8. install

安裝可執行檔案

install(targets $

runtime destination bin

)安裝庫檔案

install(targets $ $_static #關鍵字targets後跟多個目標檔案,後面再描述每乙個目標檔案的執行方法

library destination lib #關鍵字library表示目標檔案是動態庫,複製到$/lib目錄

archive destination lib #關鍵字archive表示目標檔案是靜態庫,複製到$/lib目錄

安裝目錄下的檔案

install(directory "$/" #關鍵字directory表示複製目錄,後面是源目錄,如果源目錄最後帶'/',表示把源目錄下的檔案複製到目標位址,如果沒有,表示把源目錄複製到目標位址

destination include #關鍵字destination表示目標位址,完整的路徑是$/include

files_matching pattern "*.h" #關鍵字files_matching表示只複製源目錄下*.h的檔案到目標位址

CMake常用語法

cmake 最低版本號要求 cmake minimum required version 2.8 專案資訊 project demo 查詢當前目錄下的所有原始檔,並將名稱儲存到 dir srcs 變數 aux source directory dir srcs 新增標頭檔案搜尋目錄 project ...

cmake常用語法參考

cmake常用語法參考 利用cmake來構建c 工程是乙個非常方便的選擇,尤其是依賴的庫比較多的時候,或者工程比較大的時候都非常方便,這裡記錄一些cmake常用的語法,key words cmake beijing,2019 code agile pioneer 2.cmake 執行命令 3.cma...

markdown常用語法介紹

markdown是一種輕量級標記語言,創始人為約翰 格魯伯 英語 john gruber 它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成有效的xhtml 或者html 文件。markdown 是一種輕量級標記語言,讓寫作者專注於寫作而不用關注樣式。很多有程式設計基礎的程式設計師比較喜歡使用m...