.so
これは動的ライブラリ ファイルであり、静的ライブラリ ファイルであると読みました.a
。
ビルド中openssl
にオプション./Configure no-shared
を指定すると、多くの.a
ファイルが作成されました。
それで、私の質問は、apache のような他のパッケージが.a
openssl のファイルを使用できるようになるかということです。
たとえばlibcrypto.a
、
間違った道を完全に進んでいる場合は、誰かが私にアドバイスしてください。
基本的に、スタティック ライブラリはリンク時に別のアプリケーションにコンパイルできます。あなたの例libcrypto.a
では、Apache はビルド時に使用し、それを Apachehttpd
アプリケーションに含めることができます。
動的.so
ライブラリは実行時にロードおよびアンロードでき、Apache バイナリを再コンパイルすることなく、Apache がサポートするものをより柔軟に変更できます。
例として Apache を使用すると、.so
ファイルの動的ロードについては、ドキュメントの動的共有オブジェクト (DSO)セクションで説明されています。ビルド時に静的ライブラリを含める方法を説明するインストール セクションへのリンクもあります。
これについては、読みやすく、件名のモートの詳細を提供する良い質問があります。
Aa が静的ライブラリで、2 つの異なるプログラムがそれを使用したい場合。Aa は、プログラムごとに 2 回作成されます。一方、A.so が動的ライブラリの場合、2 つのプログラムが同じファイルにアクセスします。ライブラリで参照を使用していることを意味します。
ライブラリを複数の実行可能ファイル (apache や openssl など) で共有する場合、実行可能ファイルのサイズを小さくするためにライブラリを動的にすることが理にかなっていることがよくあります。それ以外の場合は、必ず静的にします。
あなたの場合、動的ライブラリを作成する必要があります
http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.htmlをお読み ください。
これは、例を含む非常に優れたチュートリアルです。