如何在静态库中包含静态库?

时间:2021-05-07 09:26:53

标签: cmake

我在两个不同的文件夹中有 2 个静态库:libAlibB

  • 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

1 个答案:

答案 0 :(得分:0)

如果您同时控制 libAlibB 的构建,则可以通过创建 OBJECTlibA-objlibB-obj 来解决此问题。然后将 libA-obj 链接到 libA,然后将两个对象库链接到 libB