12

.soこれは動的ライブラリ ファイルであり、静的ライブラリ ファイルであると読みました.a

ビルド中opensslにオプション./Configure no-sharedを指定すると、多くの.aファイルが作成されました。

それで、私の質問は、apache のような他のパッケージが.aopenssl のファイルを使用できるようになるかということです。

たとえばlibcrypto.a

間違った道を完全に進んでいる場合は、誰かが私にアドバイスしてください。

4

3 に答える 3

11

基本的に、スタティック ライブラリはリンク時に別のアプリケーションにコンパイルできます。あなたの例libcrypto.aでは、Apache はビルド時に使用し、それを Apachehttpdアプリケーションに含めることができます。

動的.soライブラリは実行時にロードおよびアンロードでき、Apache バイナリを再コンパイルすることなく、Apache がサポートするものをより柔軟に変更できます。

例として Apache を使用すると、.soファイルの動的ロードについては、ドキュメントの動的共有オブジェクト (DSO)セクションで説明されています。ビルド時に静的ライブラリを含める方法を説明するインストール セクションへのリンクもあります。

これについては、読みやすく、件名のモートの詳細を提供する良い質問があります。

共有オブジェクト (.so)、静的ライブラリ (.a)、および DLL (.so) の違いは?

于 2013-10-28T14:07:08.403 に答える
1

Aa が静的ライブラリで、2 つの異なるプログラムがそれを使用したい場合。Aa は、プログラムごとに 2 回作成されます。一方、A.so が動的ライブラリの場合、2 つのプログラムが同じファイルにアクセスします。ライブラリで参照を使用していることを意味します。

ライブラリを複数の実行可能ファイル (apache や openssl など) で共有する場合、実行可能ファイルのサイズを小さくするためにライブラリを動的にすることが理にかなっていることがよくあります。それ以外の場合は、必ず静的にします。

あなたの場合、動的ライブラリを作成する必要があります

于 2013-10-28T13:18:22.640 に答える
0

http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.htmlをお読み ください

これは、例を含む非常に優れたチュートリアルです。

あなたは学ぶでしょう -

  1. 静的ライブラリ (.a) とは何か、およびその作成方法。
  2. 共有ライブラリ (.so) とは何か、およびその作成方法。
  3. .ddl との違い (windows os)
于 2014-12-17T08:51:13.780 に答える