我在两个不同的文件夹中有 2 个静态库:libA
和 libB
libB
必须包含 libA
我的主要 CMakeLists.txt 是:
add_subdirectory(libA)
add_subdirectory(libB)
我的第一个错误是认为在 libB 中链接 libA 会包含它,但它不是:
target_link_libraries(${PROJECT_NAME} PUBLIC libA::libA)
当我尝试在应用中使用 libB 时得到 undefined reference to some libA's functions
。
答案 0 :(得分:0)
如果您同时控制 libA
和 libB
的构建,则可以通过创建 OBJECT
库 libA-obj
和 libB-obj
来解决此问题。然后将 libA-obj
链接到 libA
,然后将两个对象库链接到 libB
。