为具有依赖关系的库安装导出问题 [英] install EXPORT problem for library with dependencies
本文介绍了为具有依赖关系的库安装导出问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试从一个项目构建两个库(比如A和B)。我在根cmake文件中使用add_subdirectory
cmake命令。B取决于A。
当我尝试添加
INSTALL (TARGETS B EXPORT B
PUBLIC_HEADER DESTINATION "include/B"
LIBRARY DESTINATION "lib"
ARCHIVE DESTINATION "lib")
INSTALL (EXPORT B DESTINATION "./")
CMake警告我与INSTALL (EXPORT ...
一致的错误。它打印:
CMake错误:安装(导出"B".)包括目标"B",该目标需要不在导出集中的目标"A"。
推荐答案
错误消息已经告诉您,您只导出了一个项目,而它依赖于另一个项目。最简单的解决方案是将两个项目都导出。如果它们都是由相同的CMakeLists.txt构建的,则只需调用
install( TARGETS A B ... )
如果没有,那么您可能有一个顶级的CMakeLists.txt(其中使用add_subdirectory)。您可以在那里设置一个安装目标,我们称其为"MyInstall"。和在您的子目录中引用此顶级安装目标
在您的子目录中.
install( TARGETS A EXPORT MyInstall ... )
类似于目标B,然后导出"MyInstall"您的顶级CMakeLists.txt:
install( EXPORT MyInstall ... )
这篇关于为具有依赖关系的库安装导出问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文