0

Red Hat Enterprise Linux 5.8 を使用して folly をコンパイルしたいのですが、gcc は 4.1.2 です。しかし、愚行には gcc >=4.6 が必要です。そのため、gcc を 4.6、おそらく binutils などにアップグレードする必要があります。新しいツールチェーンが *.a *.so などのバイナリ ファイルを生成する場合、それらを古い Red Hat Enterprise Linux 5.8 で実行すると、問題が発生したり不安定になりますか?

4

1 に答える 1

0

おそらく大きな問題はありません (GCC 4.1 と間もなくリリースされる GCC 4.8 が互換性のあるコードを生成するため)、少なくとも C コードについては。

C++ コードの場合、非互換性があると思います。確かに、これlibstdc++はコンパイラのバージョンに関連付けられています。実際には互換性がある場合もあれば、そうでない場合もあります (ただし、C++ ABI もわずかに変更されています)。そして、この非互換性はすべての C++ ライブラリに広がる可能性があります。

試してみるべきだと思います。同じ最新の GCC を使用してすべての C++ 依存関係を再コンパイルすると、おそらく非常に安全になります。したがって、最新の GCC をコンパイルfollyしてから、それを使用してすべての依存関係をコンパイルできます。

ところで、最新の GCC (今日は 4.7、数週間後には 4.8) に移行することをお勧めします。

于 2013-01-11T06:35:29.040 に答える