使用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...