我正在Debian机器上使用安装有GCC 6.3.0 x64架构开发C ++应用程序,但该应用程序将在Centos上运行,Centos上安装了GCC 4.4.7 x86。
我该如何编译适用于目标环境的应用程序?难道唯一的方法就是在我的主机上安装GCC 4.4.7吗?
我正在Debian机器上使用安装有GCC 6.3.0 x64架构开发C ++应用程序,但该应用程序将在Centos上运行,Centos上安装了GCC 4.4.7 x86。
我该如何编译适用于目标环境的应用程序?难道唯一的方法就是在我的主机上安装GCC 4.4.7吗?
-D_GLIBCXX_USE_CXX11_ABI=0
选项来使用旧的ABI以与GCC早于4.9版本兼容。否则,在目标系统上它将无法正常运行。_GLIBCXX_USE_CXX11_ABI
是不够的:它不仅改变了ABI的这个特殊怪癖。使用g++ 6编译的程序将需要在libstdc++.so.6
中提供GLIBCXX_3.4.22
,而g++ 4.4.7只提供带有GLIBCXX_3.4.13
的libstdc++.so.6
(具体版本号取自此页面)。如果您不在目标系统上安装更新的libstdc++.so
,则会从动态链接器获得“找不到版本`GLIBCXX_3.4.22'”等错误。 - Ruslan