add_definitions("-Ddef1") add_executable(${app} ./main.cpp) target_compile_definitions(${app} PRIVATE def2)
target_compile_definitions(${app} PRIVATE def2)
def1会出现在所有的项目中,跟书写的前后顺序没有任何关系,即时放在target后边,target也会加上
def2仅仅会出现在目标项目中
以下几种写法是等价的
target_compile_definitions(vld PRIVATE "-Ddef") target_compile_definitions(vld PRIVATE "def") target_compile_definitions(vld PRIVATE def)
target_compile_definitions向指定的target添加预处理器宏定义
target_compile_definitions
是在构建工具中用于设置目标编译定义(Target Compile Definitions)的指令或属性。
在许多构建工具和编译器中,编译定义是一种方式,允许在编译过程中为源代码文件定义预处理变量。这些编译定义可以通过条件编译语句在源代码中进行条件性的编译。
通过使用target_compile_definitions
,你可以向构建系统传递特定的编译定义,以便有条件地编译源代码文件或启用特定的功能。
add_definitions是向所有的编译器都添加预处理器宏定义
add_definitions
是一个CMake命令,用于向CMake项目添加编译定义(Compile Definitions)。
在CMake中,编译定义是一种预处理变量,它可以在编译过程中为源代码文件定义,并且可以通过条件编译语句在源代码中进行条件性编译。add_definitions
命令允许你向整个项目或特定的目标添加编译定义。
使用add_definitions
命令的语法如下:
cmakeCopy Code add_definitions(-DDEFINE_NAME1 -DDEFINE_NAME2 ...)
你可以在命令行中列出要添加的编译定义,每个定义以-D
前缀开头。你可以指定一个或多个编译定义,用空格分隔开。