gpt4 book ai didi

c++ - C++ 库与 CMake 的相互依赖

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

在这样一个不需要处理依赖顺序的情况下,如何处理 CMake 文件? (请参阅我之前关于问题 Strange error: undefined reference to `class::class()' 的问题)。

例如,如果你有 lib A 依赖于 lib B,而后者又依赖于 lib C,那么你可以编写代码

add_library({MY_LIB} A B C)

怎样才能不被强制服从命令?在不久的过去我刚刚做了

target_link_libraries({MY_LIB} {MY_LIB})

但这不再对我有用....我不知道为什么(???)。这个问题很烦人,因为我有大量相互依赖的库......

有什么建议吗(我在 Ubuntu 4.8.4-2ubuntu1~14.04.3 上使用 cmake 3.5.2,gcc 版本 4.8.4)?

最佳答案

创建每个库的 add_library 命令,然后使用 target_link_libraries 设置依赖项应该就足够了。

在你的情况下你会有例如

add_library(A ${sources_for_A})
add_library(B ${sources_for_B})
add_library(C ${sources_for_C})

target_link_libraries(A B) # A depends on B
target_link_libraries(B C) # B depends on C

# Executable using the libraries
add_executable(program ${sources_for_program})
target_link_libraries(program A) # Program uses library A (and B and C indirectly)

库是STATIC 还是SHARED 应该无关紧要。

关于c++ - C++ 库与 CMake 的相互依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37544161/

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