C++ 如何安装针对接口库进行私有链接的目标

C++ 如何安装针对接口库进行私有链接的目标,c++,cmake,C++,Cmake,您好,开发人员朋友,我正在使用CMake一段时间,但我不知道如何安装目标: 这是导出集的一部分 该链接针对接口库 导出集是使用命令创建的 install(EXPORT MyExportSet DESTINATION MyExportDir NAMESPACE Project FILE ProjectTargets.cmake) 到接口库的链接是这样完成的 target_link_libraries(exportedTarget PRIVATE interfaceTa

您好,开发人员朋友,我正在使用CMake一段时间,但我不知道如何安装目标:

  • 这是导出集的一部分
  • 该链接针对接口库
导出集是使用命令创建的

install(EXPORT MyExportSet DESTINATION MyExportDir
        NAMESPACE Project FILE ProjectTargets.cmake)
到接口库的链接是这样完成的

target_link_libraries(exportedTarget
    PRIVATE interfaceTargetLibrary
)
最后,我要像这样导出目标:

install(TARGETS exportedTarget EXPORT MyExportSet
      ARCHIVE DESTINATION lib/static
      LIBRARY DESTINATION lib
      RUNTIME DESTINATION bin
      INCLUDES DESTINATION include
)
这个外观对我来说是正确的,并且遵循私有标志uppon linking的逻辑,我不必导出目标interfaceTargetLibrary

但是CMake给了我一个错误(这一个)

我的问题是,这是一个bug吗?还是我不明白的?很明显,你们有并没有实现让它以某种方式运行

我使用的是CMake版本3.7

编辑:找到了,如果有人感兴趣。这是因为,私下链接的库不会打包在我导出的库中。因此,图书馆的comsummer需要与InterfaceTarGetLibrary链接
太多,所以我需要出口它以及

CMake Error: install(EXPORT "ProjectTargets" ...) includes target"exportedTargets" which requires target "interfaceTargetLibrary" that is not in the export set.