cmake--编译器设置

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

cmake--编译器设置
前⾔
cmake⽀持多种不同⽅式设置编译器标志:
1.使⽤ target_compile_definitions()设置编译器标志
2. 使⽤CMAKE_C_FLAGS和CMAKE_CXX_FLAGS设置编译标志
⼀,⽬录结构
├── CMakeLists.txt
├── main.cpp
* link:CMakeLists.txt[] - Contains the CMake commands you wish to run
* link:main.cpp[] - The source file with main
⼆,cmake脚本
cmake_minimum_required(VERSION 3.5)
# 设置默认C++编译标志
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DEX2" CACHE STRING "Set C++ Compiler Flags" FORCE)
project (compile_flags)
add_executable(cmake_examples_compile_flags main.cpp)
# 使⽤target_compile_definitions设置编译标志
target_compile_definitions(cmake_examples_compile_flags
PRIVATE EX3
)
三,扩展分析
现代cmake(modern cmake)推荐使⽤target_compile_definitions设置C++编译标志。

因为target_compile_definitions能够设置编译标志的作⽤域,关键字INTERFACE,PUBLIC和PRIVATE⽤来指定其后参数的作⽤域。

PRIVATE 和 PUBLIC 项将产⽣ <target> 的 COMPILE_DEFINITIONS 属性。

PUBLIC 和 INTERFACE 项将产⽣ <target> 的INTERFACE_COMPILE_DEFINITIONS 属性。

⽽如果设置了CMAKE_CXX_FLAGS或CMAKE_C_FLAGS标志将使得当前⽬录以及⼦⽬录下所有的编译标志都为该标志。

下⾯这篇⽂章还包含⼀些其他编译命令。

相关文档
最新文档