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