私は特有の問題があります。私はgcc-4.2を使ってビルドした共有ライブラリ 'my_tracker.so'を持っています。この共有ライブラリはlibgcc_s.so.1(GCC 4.2)に依存しています。私は 'ldd my_tracker.so'を実行し、/ lib64からlibgcc_s.so.1を取得しました。LD_PRELOADはLD_LIBRARY_PATHを変更します
私は私のスクリプト内の
'LD_PRELOAD=my_tracker.so LD_LIBRARY_PATH=[vnc_install]/lib/vnclibs:$LD_LIBRARY_PATH vncserver'
を実行しています。私はvncserverが[vnc_install]/lib/vnclibs/
からlibgcc_so.1(GCC 3.2.3)を取得していることを確認して、LD_LIBRARY_PATH
の前に置いておきたいと思います。
しかし、スクリプトを実行すると、vncserverがlibgcc_s.so.1(GCC 4.2)を/lib64
から取得しているように見えます。
プリロードされた共有ライブラリ 'my_tracker.so'の読み込み時にLD_LIBRARY_PATH
の前にlibgcc_s.so.1(GCC 4.2)が見つかりましたか?
もしそうなら、どうすればこの問題を解決できますか?
よろしく ジョン
なぜ古いバージョンのlibgcc_s.so.1を使用しようとしていますか? libcなどで新しいバージョンが必要な場合... – bdonlan
vncserverバイナリはありませんlibgcc_s.so.1の古いバージョンへのリンクを使用しています。私はそれを再コンパイルするためのvncserverのソースを持っていません。しかし、より広範な注記では、gccコンパイラのdiffバージョンでコンパイルされたバイナリ(およびdiffバージョンのlibgcc_s.so.1とのリンク)を汎用Linuxシステムでどのように実行できますか? – johnm