私はサードパーティのライブラリ(Linux上)をコンパイルしようとしていますが、それがlibsomething.aファイルを生成していることを確認しています.soファイルである他のライブラリがあります
しかし、.a も共有ライブラリであり、.so lib と同じように使用できるようです。
2つの間に違いはありますか?または、命名規則が異なるだけで同じです。
私はサードパーティのライブラリ(Linux上)をコンパイルしようとしていますが、それがlibsomething.aファイルを生成していることを確認しています.soファイルである他のライブラリがあります
しかし、.a も共有ライブラリであり、.so lib と同じように使用できるようです。
2つの間に違いはありますか?または、命名規則が異なるだけで同じです。
.a
ファイルはスタティック ライブラリですが、ファイル.so
はWindows の に似た共有オブジェクト ダイナミック ライブラリです。DLL
コンパイル中にプログラムの一部 として.a
含めることができ、プログラムのロード中にインポートすることができます。.so
しかし、 .a でも共有ライブラリのようです
いいえ、静的ライブラリです。
.so libと同じように使用できます
あなたがそれにリンクするつもりなら、そうです。ただし、.so ファイルで実行できる .a ファイルを dlopen() することはできません。
私たちの古くからの友人であるG おじさんにいつでも質問に答えてもらうことができます。
に対してリンクすると*.a
、ライブラリのコードが実行可能ファイル自体に含まれ、ファイルが存在しなくても実行可能ファイルを実行できます*.a
。に対してリンクする*.so
場合はそうではなく、*.so
実行時にファイルが存在する必要があります。