我正在编译我的共享库,该库旨在用于我的另一个(主)共享库。 因此,整个设置使用cmake编译,大致如下:
对于“main”共享库:
ADD_LIBRARY(lib_outer SHARED
....
)
TARGET_LINK_LIBRARIES(lib_outer
lib_inner
...
)
对于其他共享库:
ADD_LIBRARY(lib_inner SHARED
....
)
现在,lib_inner
使用了在第二个lib_outer
中定义和实施的一些功能,这会导致Undefined symbols for architecture x86_64
链接错误。
我可以告诉cmake
忽略这些吗?
我会使用像'external when using those functions inside
lib_inner`这样的东西吗?
我想解决方案很简单,但我从未遇到过这样的问题。
答案 0 :(得分:1)
经过与同事的一些讨论后,似乎唯一不错的选择是同时整合两个库。有效地组合之前用于生成两个独立但依赖的库的CMakeLists.txt文件。