3

C++ で win32 アプリケーションを構築しています。アプリケーションでコンパイルして使用している 2 つの静的ライブラリ プロジェクト (オープン ソース ライブラリ) があります。これらのプロジェクトの静的ライブラリは両方とも 50 MB を超えています。ただし、実行可能ファイルは 3MB しかありません。実行可能ファイル (のみ) を別のマシンにコピーすると、すべて正常に動作するように見えますが、これは正しくないようです。

プロジェクトを静的にリンクするVS2010のすべてのビジュアルスタジオの指示に従いました。つまり、Properties->Framework And References-> static lib プロジェクトを追加します。

何か案は?

4

2 に答える 2

6

静的リンクには、ライブラリから使用している部分だけが含まれるため、実行可能ファイルがライブラリよりもはるかに小さい可能性があります。

于 2012-05-31T18:19:24.243 に答える
3

使用されていないメソッドは、通常、実行可能ファイルが生成されるときにリンカーによって削除されます。ただし、静的ライブラリを生成する場合、どのメソッドが必要かを判断することは不可能であるため、それらはすべてライブラリに含まれています。実行可能ファイルが作成されたときにのみ、実際に使用されるライブラリのメソッドが決定され、他のメソッドは削除されます。

于 2012-05-31T18:21:31.403 に答える