gpt4 book ai didi

c++ - cmake - 如何根据使用它的人为目标库定义符号

转载 作者:行者123 更新时间:2023-11-30 05:11:52 29 4
gpt4 key购买 nike

我有 cmake 项目,有 3 个子项目。

我们称它为 A、B、C。

A - 子项目 B 和 C 的公共(public)库(静态)。B 和 C - 独立的可执行文件。

所以我需要以某种方式编译“A”库,以便在“B”中使用特定声明的定义(如 -DUSED_WITHIN_B_MODULE)。

另一方面,“C”可执行文件应该使用用另一组定义(如 -DUSED_WITHIN_C_MODULE)编译的“A”

请建议我如何实现它。我知道 target_compile_definitions 的 PUBLIC/PRIVATE/INTERFACE 修饰符,但我不确定如何正确地将它用于依赖树。

将不胜感激,谢谢。

最佳答案

做这样的事情:

add_library(AforB a.cpp)
set_target_properties(AforB PROPERTIES COMPILE_FLAGS -DUSED_WITHIN_B_MODULE)
add_library(AforC a.cpp)
set_target_properties(AforC PROPERTIES COMPILE_FLAGS -DUSED_WITHIN_C_MODULE)

关于c++ - cmake - 如何根据使用它的人为目标库定义符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44845324/

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