CMAKE常用内置变量解释:CMAKE_SOURCE_DIR/EXECUTABLE_OUTPUT_PATH/CMAKE_EXPORT_COMPILE_COMMANDS

前言:

  • cmake的内置命令是不区分大小写
    因此add_subdirectoryADD_SUBDIRECTORY作用一致。
  • cmake的所有变量都是区分大小写

1、PROJECT_SOURCE_DIR 与 PROJECT_BINARY_DIR
cmake系统预定义变量: 指定工程路径

  • PROJECT_SOURCE_DIR/CMAKE_SOURCE_DIR/_SOURCE_DIR 为包含PROJECT()命令的最近一个CMakeLists.txt文件所在的文件夹路径
  • PROJECT_BINARY_DIR/CMAKE_BINARY_DIR/_BINARY_DIR 运行cmake命令的目录,即工程编译发生的路径

参考资料:cmake中PROJECT_SOURCE_DIR的遐思

2、EXECUTABLE_OUTPUT_PATH 与 LIBRARY_OUTPUT_PATH
cmake系统预定义变量:
2.1、EXECUTABLE_OUTPUT_PATH: 指定最终的可执行文件的位置
例: 设置可执行文件输出路径

 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)   

2.2、LIBRARY_OUTPUT_PATH: 设置库文件的输出目录
例: 设置库文件输出路径

SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)    
以上两变量在新版本中已被`CMAKE_RUNTIME_OUTPUT_DIRECTORY`和`CMAKE_ARCHIVE_OUTPUT_DIRECTORY`代替  

参考资料: CMake 设置Target输出目录和后缀名

3、CMAKE_EXPORT_COMPILE_COMMANDS选项:
默认不开启,开启的两种方法:

  • 在CMakeLists.txt中添加 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
  • 在命令行中添加-DCMAKE_EXPORT_COMPILE_COMMANDS=on

开启后,其生成的文件compile_commands.json,包含所有编译单元所执行的指令,可以在此json中查看cpp文件是否生成.o(即该cpp是否编译了)

参考资料:CMAKE:CMAKE_EXPORT_COMPILE_COMMANDS

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值