1

Linuxで静的ライブラリを構築しています。これまでのところ、完全に自己完結型であり、内部のすべてのコードは標準ライブラリ以外は使用していません。最近変更を加えたところ、一部のコンパイル ユニットでブースト コードが使用されています。私は以下を使用してライブラリを構築しています:

g++ -c -Wall -pedantic  *.cpp
ar -cvq libbfclass.a *.o

私の質問は次のとおりです。新しいライブラリの使用に対処するためにこの方法を適応させる必要がありますか?それとも、独自のライブラリを使用する実行可能ファイルをビルドするときにリンク ライブラリを提供するだけでよいのでしょうか? 私が理解していることから、スタティック ライブラリは基本的にはオブジェクト ファイルの単なるアーカイブですが、すべてを正常に動作させるためにビルド スクリプトを変更する必要があるのか​​、それとも実行可能ファイルをビルドするときにのみ必要なのか疑問に思っていました。

4

1 に答える 1

5

その通りです。静的ライブラリは、オブジェクト ファイルの単なるアーカイブです。シンボルは、最終的な実行可能ファイルをコンパイルするときに解決されるため、他のライブラリへの参照を提供する必要があるのはそのときです。

于 2012-07-10T20:13:13.860 に答える