c++ - 在旧版本的 linux 上运行我的代码

标签 c++ linux c++11 compiler-construction

我是 Linux 编程的新手,我想知道,有没有办法在同一发行版的旧版 Linux 上运行(而不是重新编译)我的 C++ 可执行文件?

示例:假设我在 RHEL 6 上编译了我的代码并想在 RHEL 4 或 5 上运行我的可执行文件。

在 Windows 中,当我们执行此操作时,我们只需安装 C++ 编译器版本的 C++ 运行时。

示例:如果我使用VS2012构建一个使用C++11的C++项目,我只需要在客户端机器上安装C++11的C++运行时即可运行我的应用程序,无论我使用的是什么版本的Windows (当然是从 Windows XP 开始)

最佳答案

到目前为止,最简单的方法是利用 glibc 和 GCC 运行时库强大的 future 兼容性:在您希望它运行的最旧的操作系统上编译您的可执行文件,它应该可以在以后的任何东西上运行而无需重新编译(即也就是说,可能需要一些符号链接(symbolic link)来满足可执行加载程序所期望的依赖关系)。

一般来说,最好为每个你想支持的发行版编译它,这样就不会出现意想不到的冲突。

关于c++ - 在旧版本的 linux 上运行我的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20092573/

相关文章:

c++ - 抽象类,继承和虚拟析构函数

python - 为什么 C++ 比带有 boost 的 python 快得多?

c++ - Gettext 采购订单文件格式

c++ - 如何避免使用 R 值的悬空引用

c++ - 带显式模板参数列表和 [temp.arg.explicit]/3 的函数调用推演失败

c++ - 自定义弱/强引用指针

linux - 如何在 linux 中更改 gnuplot 的目录?

linux - 在 linux(或 POSIX)中类似于 win32 mem api 的功能

linux - 使用 bash rsync 远程站点

c++ - 如何有条件地使用 boost MPL 添加?