如何安装私下链接到接口库的目标
How to install a target that link privately against an Interface library
你好开发人员朋友们,我已经使用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 链接的逻辑,我不应该导出目标接口目标库
但是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 不会尝试安装IMPORTED
库。
另请参阅"CMake 中的INTERFACE IMPORTED
库是什么,它的用途是什么?
我试图找到有关这种行为的官方文件,但我无法找到。不过,我确实在套件软件的存储库中找到了相关的讨论票。
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- CMake-按正确顺序将项目与C运行时对象文件链接
- 从链接列表c++中删除一个项目
- 有根的二进制搜索树.保留与其父级的链接
- 读取文件的最后一行并输入到链接列表时出错
- 静态数据成员的问题-修复链接错误会导致编译器错误
- node-gyp 在 macOS 上未正确链接库
- 基于boost的程序的静态链接——zlib问题
- 无法链接 CMake 中的本地库
- 内联函数中具有内部链接的全局变量
- 链接阶段在Ubuntu上失败,但在MacOS上失败
- 使用gcc从静态链接的文件中查找可选符号
- 我可以将一个用clang c++11编译的对象与另一个用c++17编译的对象链接起来吗
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 下面是我为检测链接列表中的循环而制作的代码
- 与好友运算符接口<<:为什么不能链接?
- 与C 一起编译和链接卷曲简易接口
- 如何将 dramsim2 库接口与 PIN tool 链接
- 为什么我无法使用 gcc 链接具有 C 接口的混合 C/C++ 静态库?
- c++链接错误2019无法解决的外部符号虚拟错误,因为接口…(?)