2016-12-27 5 views
0

私はVisual StudioでWindowsアプリケーションプロジェクトを作成しました。 OpenSSLライブラリ(サイズ:15Mb)は、アプリケーションプロジェクトと静的にリンクしています。実行ファイルがアプリケーションプロジェクトと静的にリンクされているライブラリよりも小さい理由

ただし、アプリケーション(実行可能ファイル).exeファイルの静止サイズ〜2 MBのみ。

どうすれば可能ですか? 誰も私にリンカのことを教えてもらえますか?

答えて

3

リンカーは、アプリケーションで必要とされるOpenSSLライブラリのコードのみを選択します。 OpenSSLライブラリ全体は含まれません。したがって、実行可能ファイルはライブラリよりもかなり小さくなる可能性があります。

基本的に、静的ライブラリはオブジェクトファイルの単なるコンテナです。各オブジェクトファイルには、1つのコンパイル単位のコードが含まれています。

+2

*各オブジェクトファイルには、単一の関数のコードが含まれています。実際はそうではありません。通常、各オブジェクトファイルは、単一の翻訳単位(.c/.cppファイル)をコンパイルした結果です。 –

+1

これは、静的ライブラリが私が知っているどのプラットフォームでも動作する方法です。 –

+2

@MatteoItalia:各オブジェクト... *の間違いを指摘してくれてありがとう。私はそれに応じて私の答えを更新しました。 – Codo

関連する問題