gpt4 book ai didi

c++ - 如何安装与接口(interface)库私下链接的目标

转载 作者:行者123 更新时间:2023-12-05 07:41:00 26 4
gpt4 key购买 nike

你好开发者 friend 们,我使用 CMake 有一段时间了,但我不知道如何安装目标:

  • 这是导出集的一部分
  • 私下链接到界面库

导出集是用命令创建的

install(EXPORT MyExportSet DESTINATION MyExportDir
NAMESPACE Project FILE ProjectTargets.cmake)

接口(interface)库的链接是这样完成的

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 标志的逻辑,我不应该导出目标接口(interface)目标库

但是 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
也是,所以我也需要导出它。

最佳答案

由于它是私密链接,您可以使用以下技巧:CMake won't try to install an IMPORTED library .

另见 "What is an INTERFACE IMPORTED library in CMake and what are its uses?" .

我试图找到有关此行为的官方文档,但找不到。我确实找到了 a related discussion ticket on kitware's repo虽然。

关于c++ - 如何安装与接口(interface)库私下链接的目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45697651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com