# CMake中定义编译宏
# add_definitions
add_definitions
作为CMAKE
中添加编译预处理宏的方法存在了很长时间
使用语法:
# 添加宏定义
add_definitions(-DENABLE_DEBUG)
通过这种方法定义的预处理宏会被当前工程中所有源码使用,这无意间放大了definition
工作的范围。
# target_compile_definitions
现在更多的使用方式是target_compile_definitions
,其能够限制definitions
的定义范围只在当前目标所用源码范围内,并通过PRIVATE
参数,限定了链接该目标时是否可见此编译预处理宏定义。
target_compile_definitions(my_target PRIVATE FOO=1 BAR=1)
关于PRIVATE/INTERFACE/PUBLIC
修饰的作用可以参考这里 (opens new window)