25

私はサードパーティのライブラリ(Linux上)をコンパイルしようとしていますが、それがlibsomething.aファイルを生成していることを確認しています.soファイルである他のライブラリがあります

しかし、.a も共有ライブラリであり、.so lib と同じように使用できるようです。

2つの間に違いはありますか?または、命名規則が異なるだけで同じです。

4

3 に答える 3

32

.aファイルはスタティック ライブラリですが、ファイル.soはWindows の に似た共有オブジェクト ダイナミック ライブラリです。DLL

コンパイル中にプログラムの一部 として.a含めることができ、プログラムのロード中にインポートすることができます。.so

于 2012-09-06T05:41:41.407 に答える
20

しかし、 .a でも共有ライブラリのようです

いいえ、静的ライブラリです。

.so libと同じように使用できます

あなたがそれにリンクするつもりなら、そうです。ただし、.so ファイルで実行できる .a ファイルを dlopen() することはできません。

私たちの古くからの友人であるG おじさんにいつでも質問に答えてもらうことができます。

于 2012-09-06T05:35:14.070 に答える
19

に対してリンクすると*.a、ライブラリのコードが実行可能ファイル自体に含まれ、ファイルが存在しなくても実行可能ファイルを実行できます*.a。に対してリンクする*.so場合はそうではなく、*.so実行時にファイルが存在する必要があります。

于 2012-09-06T05:50:20.223 に答える