私が知っている限り、彼らは図書館ですが、2つの違いは何ですか?
答え1
ファイル.a
は静的ライブラリですが、.so
ファイルはWindowsのDLLと同様の共有オブジェクト(動的)ライブラリです。 2つの違いについて詳しく説明します。このページ。
答え2
次に、.aファイルは「ar」アーカイブです。 tar アーカイブとは異なり、.o またはオブジェクトファイルを保存してアーカイブから抽出し、プログラムにリンクできます。必要に応じてarを使用して他のファイルを保存できます。
-tパラメーターを使用して、arファイルのメンバーのリストを取得できます。たとえば、次のようになります。
ar -t /usr/lib/libc.a
.soファイルは「共有オブジェクト」ファイルであり、メンバーができるだけ早くローダーに接続できるようにリンカーが使用する追加情報があります。
たとえば、次のことを試してみてください。
objdump -T /lib/libc-2.11.1.so
(またはlibc.soのすべてのバージョンは/ libディレクトリにあります)。
興味深いことに、.soファイルは完全なプログラムかもしれません。たとえば、次のようにします。/lib/libc.so.6。 (これは私のUbuntu 20.04システムで動作します)