如何安装与接口库私下链接的目标

时间:2017-08-15 16:53:44

标签: c++ cmake

Hello developper朋友,我现在使用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
)

这看起来对我的权利,并遵循PRIVATE标志uppon链接的逻辑,我不应该导出目标interfaceTargetLibrary

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

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

所以我的问题是,这是一个错误吗?或者我不明白的事情?显然,你做到了让它在某种程度上发挥作用。

我正在使用CMake版本3.7。

编辑:如果有人有兴趣,请发现。这是因为私有链接的库不会打包在我导出的库中。因此,库的comsummer将需要链接到interfaceTargetLibary
我也需要将其导出。

0 个答案:

没有答案