0

現在、次のようなステートメントでlibtoolを使用して共有ライブラリ「libmylib.so」を作成しています。

libtool --mode=compile g++ -Wall -fPIC -shared $(CFLAGS) $(LFLAGS) $(LSTATIC)
libtool --mode=link g++ -shared -export-symbols-regex beam_ -rpath /usr/lib -lotherlib

これで作成されたライブラリは、他の(非静的)ライブラリ「libotherlib.so」に依存しているため、「-lotherlib」ステートメントを使用しています。

libmylib.soに対してリンクする実行可能ファイルを作成すると、何か奇妙なことが起こります。libotherlib.soに対して再度リンクする必要があります。つまり、この実行可能ファイルにも「-lotherlib」ステートメントを追加する必要があります。

したがって、libmylib.soをビルドするときのlibotherlib.soの以前のリンクは永続的ではないようです。しかし、どうすればこれを変更できますか?共有ライブラリlibotherlib.soへの依存関係を暗黙的に認識できるように、libmylib.soをビルドするにはどうすればよいですか?

ありがとう!

4

1 に答える 1

0

答えはこの質問と同じようです:ビルド中に静的ライブラリを共有ライブラリにリンクしますか?

大きな違い:共有オブジェクトが静的オブジェクトの代わりにリンク用に指定されている場合、それらは含まれませんが、生成された共有ライブラリはこれらへの依存性を記憶しています。

于 2013-02-22T06:34:30.680 に答える