【问题标题】:How to include all 3rdparty runtime dependencies into cmake/cpack-generated package on linux?如何在 linux 上将所有 3rdparty 运行时依赖项包含到 cmake/cpack 生成的包中?
【发布时间】:2019-04-10 08:55:25
【问题描述】:

我有一个 c++ 项目,其中有几个使用 cmake 设置的可执行文件。通常的工作流程是通过包管理器安装所有 3rdparty 依赖项,在同一台机器上通过 cpack 构建和安装包。现在,我想在该包中包含所有运行时依赖项,以便能够将其安装在另一台机器上,而无需像在构建机器上那样安装 3rdparty 依赖项。

我在网络上进行了大量研究,但没有取得多大成功。我为 cmake 找到了一个名为 BundleUtilities 的东西,但找不到任何易于入门的文档。我什至不知道它是否能满足我的需要。

我想利用 cmake 的好处,在没有任何人工干预或任何东西的情况下生成这样一个“捆绑”包。我不想手动组装和复制 3rdparty 依赖项。理想的解决方案是干净的 cmake/cpack 解决方案。

编辑:

澄清一下:有问题的目标机器没有互联网连接。

【问题讨论】:

    标签: c++ linux cmake packaging cpack


    【解决方案1】:

    您确定要这样做吗?这可能不是一个好主意......打包第三方工具实际上是在承担第三方软件的责任,并且随着上游版本不可避免地领先于人们在您的 tarball 中找到的可以成为真正的头痛。考虑一下您是否真的可以看到版本冲突,因为您的依赖项已安装。

    为什么不在配置时让 cmake 调用系统的包管理器? exec_process() 命令将为您运行控制台命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-24
      相关资源
      最近更新 更多