gpt4 book ai didi

CMake : target_compile_options() vs target_compile_definitions()

转载 作者:行者123 更新时间:2023-12-02 15:53:29 29 4
gpt4 key购买 nike

target_compile_options() 之间有什么不同?对比target_compile_definitions()

根据 CMake 文档:

target_compile_options - 添加选项到 COMPILE_OPTIONSINTERFACE_COMPILE_OPTIONS目标属性。

target_compile_definitions - INTERFACE , PUBLICPRIVATE需要关键字来指定以下参数的范围。 PRIVATEPUBLIC项目将填充 COMPILE_DEFINITIONS <target>的属性(property). PUBLICINTERFACE项目将填充 INTERFACE_COMPILE_DEFINITIONS <target>的属性(property).

但我不知道使用哪一个以及何时使用。

最佳答案

使用 target_compile_definitions 来定义预处理器宏,使用 target_compile_options 来定义其他标志。

对于 target_compile_definitions cmake 能够根据使用的编译器选择合适的编译器标志。此外,您还可以保存 -D:

示例

target_compile_definitions(MyTarget PRIVATE
ADD_DEBUG_PRINTS=1
ABCDE
)

if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
target_compile_options(MyTarget PRIVATE -Wall)
endif()

注意-Wall的使用通常不应该加在这个地方;它只是用作众所周知的编译器标志的示例...

关于CMake : target_compile_options() vs target_compile_definitions(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71855535/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com