【发布时间】:2017-07-26 08:02:43
【问题描述】:
我正在使用 cmake 在 Ubuntu 16.04 上开发一个 c++ 程序,使用 g++5 和 clang++-3.8 进行编译。
现在我想让这个程序也适用于 14.04,但是由于我使用了很多 c++14 特性,我不能只在那个系统上重新编译它。相反,我想问是否/如何以一种我可以在目标系统上解压文件夹并运行应用程序的方式打包所有依赖项(特别是 c++ 标准库)。
理想情况下,我正在寻找一些可以添加到我的 cmake 构建中的自动化/脚本化解决方案。
奖金问题:
目前,这只是一个简单的命令行程序,我可以轻松地重新编译所有 3rd 方依赖项(实际上我这样做了)。然而,从长远来看,我还想移植一个 QT 应用程序。理想情况下,该解决方案也适用于该场景。
【问题讨论】:
-
google://docker
-
@arrowd:你能详细说明一下吗?我无法在目标系统上安装 docker,也无法在 Ubuntu 14.04 上编译我的程序。
-
您可以将您的程序作为 docker-packed 容器分发。
-
如果担心标准库,可以静态链接。 stackoverflow.com/questions/26103966/…
-
@xaxxon:嗯,它不仅仅是标准库。我也在使用其他一些库,但标准库是我唯一确定 ubuntu14.04 上的版本太旧的库。但是,由于所有库都链接到 stl,我可能还必须打包它们。静态链接所有内容可能适用于我当前的场景,但它不会起作用 - 例如,当它变得非常复杂时链接 qt 或其他更复杂的系统库。