0

静的ライブラリとしてコンパイルされた多くのシステムライブラリを備えたLinuxベースのOSがあります。

このようなライブラリをアプリケーションで使用して、最終的なバイナリにリンクするにはどうすればよいですか?

4

2 に答える 2

2

静的にリンクすることを除いて、共有ライブラリを使用するのと同じように使用します。GCCの紹介-共有ライブラリと静的ライブラリの記事から始めましょう。

于 2012-10-02T12:58:30.663 に答える
2

理解するのに苦労しています。あなたがのようなものとリンクしている場合

g++ -o myprog myprog.o obj1.o obj2.o -L/path/to/lib -L/path2/to/lib -llib1 -llib2 -lib3

ライブラリパス(/ path / to / lib、/ path2 / to / lib、およびシステム固有のディレクトリのセット)にliblib1.soが存在する場合、gccまたはg ++ラッパーを介して呼び出されたリンカーは「正しいこと(tm)」を実行します。システムライブラリがおそらくある場合)、liblib1.aが静的にリンクされていない場合は、動的にリンクされます。注意すべき唯一のことは、静的ライブラリに相互依存関係がある場合(lib1にはlib2が必要で、lib2にはlib1が必要)、それらを数回繰り返すか、ldの--start-groupand--end-groupオプションを使用して必要なライブラリをマークする必要がある場合があることです。一緒に考えます。

于 2012-10-02T13:22:58.200 に答える