为具有依赖关系的库安装导出问题 [英] install EXPORT problem for library with dependencies

查看:30
本文介绍了为具有依赖关系的库安装导出问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试从一个项目构建两个库(比如AB)。我在根cmake文件中使用add_subdirectorycmake命令。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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆