異なる gcc バージョンで生成された 2 つの実行可能ファイルがgcc 3.4.2
ありgcc 4.3.2
ます。
どちらも同じ環境、つまり同じLD_LIBRARY_PATHを持つ環境で実行する必要があります。
現在、 のパスは の4.3.2
前に配置され、3.4.2
エラーが発生し3.4.2
ています。
libstdc++.so.6: version 'GLIBCXX_3.4.9' not found (required by../../src/hello)
必要なロードタイムファイルを見つける場所であるexeに情報を保存できるソリューションについて考えています。
問題を引き起こしている以下のビルドスクリプトを作成しました:
基本的にO3オプションは最適化を行っています。
/opt/gcc-4.3.2/bin/g++ -pipe -O3 -c hello4_3_2.cpp
/opt/gcc-4.3.2/bin/g++ -o hello4_3_2 hello4_3_2.o -L$/opt/gcc-4.3.2/lib64/libstdc++
/opt/gcc-3.4.2/bin/g++ -pipe -O3 -c hello3_4_2.cpp
/opt/gcc-3.4.2/bin/g++ -o hello3_4_2 hello3_4_2.o -L$/opt/gcc-3.4.2/lib64/libstdc++
以下のスクリプトは私のために機能します:(O3オプションなし)
/opt/gcc-4.3.2/bin/g++ -pipe -c hello4_3_2.cpp
/opt/gcc-4.3.2/bin/g++ -o hello4_3_2 hello4_3_2.o -L$/opt/gcc-4.3.2/lib64/libstdc++
/opt/gcc-3.4.2/bin/g++ -pipe -c hello3_4_2.cpp
/opt/gcc-3.4.2/bin/g++ -o hello3_4_2 hello3_4_2.o -L$/opt/gcc-3.4.2/lib64/libstdc++
今:
それを達成する他の方法があるかどうか知りたかったのです。
このようにすることの欠点はありますか。