お邪魔します。
題名の通りアプリケーションのサイズについてです。
自分はC言語+DXライブラリで制作を進めているのですが、
画像、サウンドは何も用いていません。
総行数約1000行です。
しかし、アプリケーションのサイズは約2.8MBもあります。
(自分が今公開しているDOT_getterなんですが。。)
以前バグさんが紹介されたテトリスでも約1.0MBです
(↓過去ログ)
http://www.play21.jp/board/formz.cgi?ac ... &rln=24882
これはなぜでしょうか?
確保する変数が多すぎるのでしょうか?
C言語とC++の違いでしょうか?
少しでも軽くはできないのでしょうか?
よろしくお願いします。
アプリケーションのサイズについて
Re:アプリケーションのサイズについて
・デバッグ版はデバッグ情報を実行ファイルに入れる。 ・プロジェクトのプロパティで、最適化に関する項目(ここではリリース版)に関係。 ・DX ライブラリは マルチスレッド DLL (/MTd)で作成したライブラリで無いので、 ランタイムデータが実行プログラムに組み込まれる。 (強制的に /MTd でリンクしてしまえば小さくなるかも) ・C++ は例外関係及び型情報を持つようにコンパイルすると大きくなる。等が上げられます。
特に、デバッグ版とリリース版の実行ファイルのサイズは大きく違います。
ランタイムライブラリを実行ファイルにリンクする方法では、使用している
ランタイムライブラリの数によって比例的に増加します。
ただし、ランタイム DLL として作成した実行ファイルは、
ランタイムライブラリのインストールをしていないと起動できません。
Re:アプリケーションのサイズについて
VisualStudioですか?
ReleaseではなくDebugにしていませんか?
もしVisualStudioでしたら、メニューバー付近に「Debug」と表示されていると思うので「Release」に変更して下さい。
もし表示されていない時は「ビルド」>「構成マネージャー」からも変更できます。
自動変数の表示など、デバッグできなくなる代わりに、実行ファイルが軽くなります。実行速度も変わるようなので、配布時にはReleaseにするといいです。
後、Releaseにしたままでデバッグすると、自動変数に変な値が表示されるので、デバッグする時はDebugに戻してください。
ReleaseではなくDebugにしていませんか?
もしVisualStudioでしたら、メニューバー付近に「Debug」と表示されていると思うので「Release」に変更して下さい。
もし表示されていない時は「ビルド」>「構成マネージャー」からも変更できます。
自動変数の表示など、デバッグできなくなる代わりに、実行ファイルが軽くなります。実行速度も変わるようなので、配布時にはReleaseにするといいです。
後、Releaseにしたままでデバッグすると、自動変数に変な値が表示されるので、デバッグする時はDebugに戻してください。
Re:アプリケーションのサイズについて
御津凪さん、管理人さんご回答ありがとうございます^^
お二方のおっしゃる通りでした。。
今まで全く気にしたことがなかったので
デバッグ・リリースの全く違いを理解できていませんでした。
こんな性能のいいvisual C++がまだ使いこなせてません^^;
でもDebug機能はすごいですね。
学校で使ってるLinuxはこの機能がなく、
エラーと言えば「セグメンテーション違反」ですね^^;
最初のころはポインタで躓いていたので、
このエラー文字でどれだけ苦しんだことか・・・w
すみません。。話がそれました。
本当にありがとうございました。
またよろしくお願いします。
お二方のおっしゃる通りでした。。
今まで全く気にしたことがなかったので
デバッグ・リリースの全く違いを理解できていませんでした。
こんな性能のいいvisual C++がまだ使いこなせてません^^;
でもDebug機能はすごいですね。
学校で使ってるLinuxはこの機能がなく、
エラーと言えば「セグメンテーション違反」ですね^^;
最初のころはポインタで躓いていたので、
このエラー文字でどれだけ苦しんだことか・・・w
すみません。。話がそれました。
本当にありがとうございました。
またよろしくお願いします。