我正在使用CMake构建不同的C++库,整个过程可以总结如下:

  • lib a:什么都不依赖
  • lib b:取决于

  • 我现在需要创建一个依赖于b的库c。我只需要在b上链接c吗?或b和a,因为b取决于a?

    target_link_libraries(c b)或target_link_libraries(c b a)?

    谢谢

    最佳答案

    在代码构建库b中,应该告诉CMake b取决于a:

    target_link_libraries(b a)
    

    然后,您的库/应用程序c可以仅链接到其使用的内容,而不必担心依赖关系的依赖关系:
    target_link_libraries(c b)
    

    图书馆将为您服务。

    10-08 11:07