2017-06-08 11 views
1

私はサードパーティによって提供されるライブラリを持っています、ファイル名はlibPXTrader.soです。しかし私はそれを私のプロジェクトのトレーダーに改名したいと思っています。だから、名前を変更しました。変わったことは、私がメインファイルをコンパイルした後であることです。サードパーティの共有ライブラリの名前を変更しても効果はありませんか?

gcc main.o third_party/lib/trader.so -o main 

実行可能ファイルmainはまだlibPXTrader.soへのリンクです。 は、コマンド

ldd main 

を使用してそれはlibPXTrader.soが見つからないことを示しています。文字列trader.soを使用してlibPXTrader.soという文字列を見つけました。この共有ライブラリ名はsoファイルにハードコードされています。どうすれば対処できますか?

答えて

0

私は自分の質問に答えることができます。 libPXTrader.soには、.dynamicセクションがあります。オプションのフィールドSONAMEがあり、SONAMEが空でない文字列に設定されている場合、libPXTrader.soの名前を変更しても、メインファイルは引き続きlibPXTrader.soにリンクされます。

関連する問題