古いマシンで C++11 コードをコンパイルする

古いマシンで C++11 コードをコンパイルする

古いカーネルを搭載した古いマシンで C++11 プロジェクトをコンパイルしようとしています。実行しているのは CentOS 6.2、6.3、Alt Linux 4.1 です。他のマシンは不明ですが、同様に古いものです。マシンでは GCC の新しいバージョンをインストールできません。実行できるのは 4.4 までで、プロジェクトを書き直すことはできません。

なんとか 1 台のマシンで GCC 4.6 をローカルにビルドし、それを使用してプロジェクトをコンパイルしましたが、すべてのマシンで同じことを繰り返すのは避けたいです。すべてのマシンでコードをコンパイルまたは実行する簡単な方法はありますか?

答え1

おそらく最善の方法は、すべてのマシンで新しいバージョンの gcc をコンパイルすることです。これはスクリプトで実行できます (lfsこれを行う)。スクリプトをコピーして貼り付け、一時アカウントから ssh 経由で実行することは「安全」です。

また、アップデートしてみるのもいいでしょうリポジトリCentos にインストールさせることもできます。ただし、Centos はシステム全体をアップグレードしようとする可能性があります。

また、 を使用していますか-std=c++11? そうであれば、 を試してみるとよいでしょう-std=c++0x

答え2

この問題は私にとってまだ現実のものであり、CentOS - Devtoolset の優れた解決策を見つけました。https://www.softwarecollections.org/en/scls/rhscl/devtoolset-3/

RHEL/CentOS 6/7 用の GCC の最新バージョンとその他のツールを提供します。

関連情報