gpt4 book ai didi

cmake - 多个 CMake 目标的 target_compile_definitions?

转载 作者:行者123 更新时间:2023-12-04 16:46:47 35 4
gpt4 key购买 nike

我已经 been told做设置之类的事情是不好的做法 CFLAGS直接在 CMake 中,相反,我应该使用 target_compile_definitions()命令。

好的,但是 - 如果我想对多个(独立)目标使用相似/相同的定义怎么办?我不想一遍又一遍地重复自己。

最佳答案

我看到了三种可能的方式:

  • 首选使用 target_compile_definitions(... INTERFACE/PUBLIC ...) 这将通过 target_link_libraries() 将编译器定义自我传播到依赖它的目标命令。
  • 使用 set_property(TARGET target1 target2 ... APPEND PROPERTY COMPILE_DEFINITIONS ...) 为多个目标设置相同的定义。
  • 您仍然可以使用 add_definitions() 的“旧命令”和 remove_definitions() 修改 COMPILE_DEFINITIONS 目录属性(将在此目录范围内预设所有 COMPILE_DEFINITIONS 目标属性)。

  • 引用
  • Is Cmake set variable recursive?
  • CMake: Is there a difference between set_property(TARGET ...) and set_target_properties?
  • 关于cmake - 多个 CMake 目标的 target_compile_definitions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47611319/

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