CMake

指定项目名称

project(projName)
指定项目名称后,会自动生成一系列变量名

项目名称

${PROJECT_NAME}

源码目录(应该是CMakeLists.txt所在目录)

${projName_SOURCE_DIR}

生成二进制目录(默认为执行cmake命令的目录)

${projName_BINARY_DIR}

生成可执行文件

add_executable(exeName sourceFile)

生成静态库

add_library(libName sourceFile)

生成动态库

add_library(libName SHARED sourceFile)

增加头文件搜索路径

include_directories(path)

引用子目录中的CMakefile.txt

add_subdirectory(path)

链接库

target_link_libraries(exeName libName)

设置库文件输出目录

set(LIBRARY_OUTPUT_PATH path)

内置变量列表

最顶级目录中 CMakefile.txt 的 build 目录

${CMAKE_BINARY_DIR}

项目二进制目录

${PROJECT_BINARY_DIR } #同 ${projName_BINARY_DIR}

源码目录

$(PROJECT_SOURCE_DIR) #同 #{projName_SOURCE_DIR}

二进制输出目录

${EXECUTABLE_OUTPUT_PATH} #可执行文件输出目录
${LIBRARY_OUTPUT_PATH} # 库文件输出目录
如:
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
注意: 设置该变量 的 SET 语句 通常放在 ADD_EXECUTABLE 或 ADD_LIBRARY 之前

搜索文件名 到 变量

file(GLOB varName “path/*.lib”)

设置编译选项

add_compile_options

设置C++标准

add_compile_options(-std=c++17)

设置C++编译选项

set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -std=c++11 -g -Wall”)

设置C编译选项

set(CMAKE_C_FLAGS “${CMAKE_C_FLAGS} -std=c99 -g”)

收集指定目录的源文件到变量名

aux_source_directory(path, varName)

添加外部库引用路径

link_directories(path)

打印信息

message([STATUS/SEND_ERROR/FATAL_ERROR] “message text”)
STATUS: 输出信息
SEND_ERROR: 显示为错误信息
FATAL_ERROR: 将终止进程

make时输出详细信息

make VERBOSE=1

设置头文件引用路径

include_directories(dir1 dir2 …)

指定链接库

target_link_libraries(target lib1 lib2)

操作系统名称

${CMAKE_SYSTEM_NAME}

打印include目录

get_property(dirs DIRECTORY C M A K E S O U R C E D I R P R O P E R T Y I N C L U D E D I R E C T O R I E S ) m e s s a g e ( " > > > i n c l u d e d i r s = {CMAKE_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES) message(">>> include_dirs= CMAKESOURCEDIRPROPERTYINCLUDEDIRECTORIES)message(">>>includedirs={dirs}") #打印一下目录情况

问题列表

mac 下生成 xcode 工程文件报错

cmake … -G “Xcode”
报错:
No CMAKE_C_COMPILER could be found.
No CMAKE_CXX_COMPILER could be found.
解决方法:
sudo xcode-select --reset

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值