3

最新バージョンの GCC (4.8.1) でコンパイルされ、最新バージョンのlibstdc++.

すでに多くの共有ライブラリを使用しているため、ゲームに.so必要なファイル (正しいバージョンのlibstdc++.

を使用してデフォルトのライブラリ検索パスを変更しますLD_LIBRARY_PATH。残念ながら、Linux (Windows とは異なります) は、が設定され/usr/lib/ていても、常に を優先しLD_LIBRARY_PATHます。

libstdc++実行時に検索パスをオーバーライドする方法はありますか? rpath私がこれまでに見た唯一の解決策は、コンパイル時またはコンパイル時のいじりでrunpathあり、それは私が避けたいことです。もう 1 つの解決策は静的リンクですが、Linux ではこれは悪い習慣だと聞いています。また、最新の.soライブラリのみを自動的に更新する自動アップデーターをゲームに使用しています。

4

2 に答える 2

0

RPATHコンパイル時に削除することで部分的に解決しました。glibcただし、古いディストリビューションの異なるバージョンにはまだ問題があります。

于 2013-07-04T22:50:51.383 に答える
0

「export LD_LIBRARY_PATH=[my new path]:$LD_LIBRARY_PATH」を使用するとうまくいきます。/usr/lib の優先順位を高くすることはありません。

于 2013-06-18T19:39:27.603 に答える