0

私の質問は、C++ プログラムをコンパイルするときに、すべてが 1 つの exe ファイルにまとめられるのはなぜですか? ファイルが大きくなる可能性があります。サイズを縮小するためにdllライブラリを使用しますか、それとも他に作成できるファイルはありますか? 個別のファイルを使用して実行するプログラムの作成方法を知りたいだけです。

(編集)すべてを1つのファイルにまとめたくありません。最終的にファイルが大きくなりすぎて、コンピューターが処理できなくなる可能性がありますよね? ファイルを分離する方法が必要です。Java と同様に、すべてがクラス ファイル内にあるため、より簡単で効率的です。FAT32 などの一部のドライブは 4 ギガバイトを超えるファイルを持つことができないため、より分解されたプログラムが必要です。ポータルと呼ばれる私のゲームを見てみました。その exe は 100KB で、約 100 個の dll ファイルがあります。

4

3 に答える 3

3

あなたの質問に答えるには、はい。必要に応じて、プログラムを個別の DLL ファイルに分割できます。

一部の開発者は、ユーティリティ関数を別の共通 DLL ファイルにコンパイルして、他のプロジェクトに参照として含めることができるのを見てきました。このようにして、そのオブジェクトとメソッドをそこから呼び出すことができます。

後から考えると、コンパイルされたコードは比較的小さいものです。ビデオ、画像、モデル、サウンドなど、実際に最も多くのスペースを消費するのはバイナリ データです。小さなプログラムでは、これらのリソースを実行可能ファイルに直接パックすることは可能であり、一般的ですが、多くの明白な理由から、一般的には良い考えではありません。 .

最後に、大規模な実行可能ファイルは、今日のテクノロジでは大きな問題ではありません。小規模なプログラムの場合、私はそれを気にしません。プロジェクトが大きくなればなるほど、デザインの開発が重要になります。

于 2013-03-12T20:48:42.340 に答える
2

何のために大きすぎるのですか?ストレージ容量の制限が原因である場合、複数のファイルに分割しても何も得られません. プラットフォーム上のファイルの最大サイズ (一部の 32 ビット プラットフォームでの 2GB 制限など) を何らかの形でオーバーフローしていない限り (これは非常にありそうもないことですが)、問題がないことを心配している可能性があります。

生成された実行可能ファイルのサイズは、コンパイラのデバッグ オプションをオフにしたり、さまざまなプラットフォームで「削除」したり、実行速度ではなくコード サイズを最適化するように最適化設定を設定したりすることで削減できます。

于 2013-03-12T20:40:27.093 に答える
0

(Windowsで)exeを複数のファイルに分割する方法は、OPが示唆しているように、dllを使用することです。

コメンターは、これが実際にディスク上のスペースを少なくしたり、メモリを節約したりすることはないという点で正しいですが、アプリケーションを複数のファイルに分割する理由は他にもあります。たとえば、コードを共有したり (1 つの dll を複数のアプリケーションで使用できる)、アプリケーションの読み込みを高速化したり (実際に必要なときにのみ dll を読み込む) することができます。

于 2013-03-12T20:48:37.143 に答える