回答:
アーカイブライブラリ(.a)は静的にリンクされています。つまり、gccで-cオプションを使用してプログラムをコンパイルした場合です。したがって、ライブラリに変更がある場合は、コードを再度コンパイルしてビルドする必要があります。
.aライブラリに対する.so(共有オブジェクト)の利点は、実行時にリンクされること、つまりgccで.oファイルの-oオプションを作成した後にリンクされることです。したがって、.soファイルに変更がある場合は、メインプログラムを再コンパイルする必要はありません。ただし、メインプログラムがlnコマンドで新しい.soファイルにリンクされていることを確認してください。
これは、.soファイルの作成に役立ちます。 http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
お役に立てれば。
pic
(位置独立コード)に関連していますか?
.aは静的ライブラリです。それらの内部に格納されたコードを使用する場合、コードはそれらから取得され、独自のバイナリに埋め込まれます。Visual Studioでは、これらは.libファイルになります。
.soは動的ライブラリです。それらの内部に格納されたコードを使用する場合、それは取得されず、独自のバイナリに埋め込まれます。代わりに参照されるだけなので、バイナリはそれらに依存し、soファイルのコードは実行時に追加/ロードされます。Visual Studio / Windowsでは、これらは.dllファイルになります(リンク情報を含む小さな.libファイルを含む)。
.lib
ファイル.dll
は、インポートライブラリと呼ばれます。
.aファイルは通常、静的にリンクされるライブラリ(またはより正確にはアーカイブ)であり、
.soは動的にリンクされるライブラリです。
移植するには、それらを作成するためにコンパイルされたソースコード、またはAIXマシン上の同等のファイルが必要です。
ウィキペディアはこの情報のためのまともな情報源です。
.aのような静的ライブラリファイルについては、静的ライブラリを参照してください。
.so read Library_(computing)#Shared_librariesのような共有ライブラリファイルについて学習するには、このページの「ファイルの名前付け」セクションに役立つ情報もあります。
a
、もう1つはs
共有o
オブジェクトです