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