編寫CMakeLists常使用的函式和示例

2021-10-07 20:58:53 字數 2963 閱讀 9440

cmake_minimum_required(version 3.5)    #cmake最低版本要求

project(test) #工程名

set(cmake_cxx_standard 11) #c++11 設定

set(cmake_build_type debug) # debug版

#add_subdirectory() 新增子目錄 該目錄下自動尋找對應的cmakelists.txt檔案

#set(common_src $/public/common/kingtbb.cpp) #將原始檔設定到變數中

#add_library(common_lib static $) 生成對應的靜態庫方便鏈結

#set(cmake_cxx_flags "$ -fpic")

#如果要編譯成可用gprof分析的版本,則在配置檔案中加入:

#set(cmake_build_type profile)

#set(cmake_cxx_flags_profile "-pg" )

add_compile_options(-std=c++11 -w)

#add_definitions(-std=c++11)

add_definitions(-g)

add_definitions(-wno-deprecated-declarations)

aux_source_directory(./ srclist) #將當前目錄下的原始檔 加到變數srclist

aux_source_directory(./datamanger srclist) #將當前目錄下的datamanger 下的原始檔 加到變數srclist

include_directories("./") #標頭檔案包含路徑

include_directories("../../../midware") #標頭檔案包含路徑

include_directories("../../../public") #標頭檔案包含路徑

link_directories("/usr/lib/x86_64-linux-gnu/c++11") #指定額外的庫鏈結路徑

)#生成test 程式依賴srclist 和其他的cpp檔案

target_link_libraries(test dl libboost_locale.a libboost_system.a libboost_filesystem.a

pthread z rt libboost_thread.a libuuid.a libjansson.a libcurl.so stdc++ $)

#test 需要鏈結的庫

cmake_minimum_required(version 3.5)

)#此庫檔案依賴其他庫

target_link_libraries(stocklib dl libboost_locale.a libboost_system.a libboost_filesystem.a

pthread z rt libboost_thread.a libuuid.a libjansson.a libcurl.so stdc++ $)

cmake使用過程

1. 在cmakelists檔案當前目錄建立個build資料夾

2. cd build 然後執行cmake .. (補充:cmake .. -dcmake_build_type=debug/release 編譯debug或者release版本)

3. 成功的話就會生成makefile檔案

4. 然後 make 就能編譯

CMakeLists檔案的編寫

一 cmake使用慣例 1 在專案根目錄建立乙個build目錄 mkdir build cd build 2 執行 cmake 3 確定生成makefile成功,執行make 二 乙個簡單的例子 假設當前的目錄為test 1 新建hello.cpp 2 新建cmakelists.txt 內容 add...

CmakeLists 使用總結

由於c 更為自由,執行速度較快,所以我們常常會使用c 寫一些演算法,這其中少不了對cmakelists的折騰,這裡會記錄一下我使用cmake的流程以及問題,最後給出乙個使用opencv的小demo 我的理解,cmake就是將makefile進一步封裝,用起來更加友好,我們只要編寫cmakelists...

CMakeLists 在實際專案中的編寫例項

最近在專案中經常需要編寫cmakelists,在此記錄一下正式專案中是如何編寫使用的,特此記錄便於日後查閱。project device authentication cmake minimum required version 3.5 include directories include src...