1、首先用cmake_minimum_required (VERSION 3.14.1)指定所需cmake的最小版本。
2、project(name CXX C)指定工程名稱,這個會影響PROJECT_SOURCE_DIR(第一個project所在的CMakelist.txt所在的文件的目錄)的值
3、通用的屬性可以放在單獨的文件中如ToolChain.cmake,然后可以用include (ToolChain.cmake)等方式飽含。
4、set(CMAKE_VERBOSE_MAKEFILE ON/OFF)用於開關編譯時的詳細信息打印
5、常用變量:
指定編譯選項
CMAKE_C_FLAGS : 指定gcc編譯選項,如-02 ,-g,當然也可用通過add_definitions設置。
CMAKE_CXX_FLAGS:指定g++編譯選項。
CMAKE_C_FLAGS_DEBUG:指定debug版本編譯選項
指定鏈接選項
CMAKE_EXE_LINKER_FLAGS
CMAKE_MODILE_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS
指定編譯器
CMAKE_C_COMPILER:指定C編譯器,如gcc
CMAKE_CXX_COMPILER:指定C++編譯器,如g++
BUILD_SHARED_LIBS:指定默認生成庫文件類型,on:動態庫,off 靜態
CMAKE_BUILD_TYPE:設置編譯類型,如Debug、Release
指定RPATH相關選項,如果為true,則關閉rpath功能
CMAKE_SKIP_RPATH;構建和安裝期間
CMAKE_SKIP_BUILD_RPATH:構建期間
CMKAE_INSTALL_RPATH:安裝期間
6、指定編譯輸出路徑
set(LIBRARY_OUTPUT_PATH, $(PROJECT_SOURCE_DIR}/output) 指定庫文件輸出路徑
set(EXEC_OUTPUT_PATH, $(PROJECT_SOURCE_DIR}/output) 指定可執行文件輸出路徑
LIBRARY_OUTPUT_PATH
添加依賴:
include_directories:添加頭文件搜索路徑,相當於-I
link_directories添加庫文件搜索路徑,相當於-L
add_subdirectory(src):添加子目錄
add_executable(name, $(sourcefile)):指定編譯文件,編譯可執行程序
add_libarary(name,SHARED,$(sourcefile)):指定編譯文件,編譯庫文件
target_link_libraried(name,$(dependlibs))添加依賴的庫文件,相當於-l
link_libraries("/opt/MATLAB/R2012a/bin/glnxa64/libeng.so")添加依賴庫文件,相當於-I, 需要全路徑,並且只能用於add_executable之前。
7、其他
message(status,"message ${xx}); 打印信息
file(MAKE_DIRECTORY xxx)創建文件
————————————————
版權聲明:本文為CSDN博主「mby1988」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/mby1988/article/details/121706937