[√]添加预处理的2个不同方式:target_compile_definitions / add_definitions

简介: [√]添加预处理的2个不同方式:target_compile_definitions / add_definitions
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前缀开头。你可以指定一个或多个编译定义,用空格分隔开。

目录
相关文章
Ninja is required to load C++ extensions | 问题解决
Ninja is required to load C++ extensions | 问题解决
|
7月前
|
人工智能 机器人 测试技术
【CMake报错】Cannot specify compile definitions for target “PRIVATE“ which is not built...
【CMake报错】Cannot specify compile definitions for target “PRIVATE“ which is not built...
103 0
|
7月前
target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target S
target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target S
107 0
|
7月前
MTK在编译10A的target时报错:make: *** [mmi_feature_check]
MTK在编译10A的target时报错:make: *** [mmi_feature_check]
32 0
|
7月前
|
JavaScript
解决报错did you register the component correctly? For recursive components, make sure to provide the “na
解决报错did you register the component correctly? For recursive components, make sure to provide the “na
|
7月前
|
算法 项目管理 开发者
【Conan 入门教程 】深入解析Conan中的依赖关系的定义方法(In-depth Analysis of Dependency Definition Methods in Conan)
【Conan 入门教程 】深入解析Conan中的依赖关系的定义方法(In-depth Analysis of Dependency Definition Methods in Conan)
301 0
|
存储 自然语言处理 编译器
编译链接(Compile Link)
编译链接(Compile Link)
161 0
Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_ZMCertification", referenced from:解决方法
Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_ZMCertification", referenced from:解决方法
207 0
build.xml:391: javac doesn‘t support the “nativeheaderdir“ attribute
build.xml:391: javac doesn‘t support the “nativeheaderdir“ attribute
112 0
解决g++编译C++报错unresolved external... (undefined reference ...)
解决g++编译C++报错unresolved external... (undefined reference ...)
330 0
解决g++编译C++报错unresolved external... (undefined reference ...)

热门文章

最新文章