アプリケーションのサイズについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
kazuoni

アプリケーションのサイズについて

#1

投稿記事 by kazuoni » 16年前

お邪魔します。

題名の通りアプリケーションのサイズについてです。

自分はC言語+DXライブラリで制作を進めているのですが、
画像、サウンドは何も用いていません。
総行数約1000行です。
しかし、アプリケーションのサイズは約2.8MBもあります。
(自分が今公開しているDOT_getterなんですが。。)

以前バグさんが紹介されたテトリスでも約1.0MBです
(↓過去ログ)
http://www.play21.jp/board/formz.cgi?ac ... &rln=24882

これはなぜでしょうか?
確保する変数が多すぎるのでしょうか?
C言語とC++の違いでしょうか?
少しでも軽くはできないのでしょうか?

よろしくお願いします。

御津凪

Re:アプリケーションのサイズについて

#2

投稿記事 by 御津凪 » 16年前

・デバッグ版はデバッグ情報を実行ファイルに入れる。
・プロジェクトのプロパティで、最適化に関する項目(ここではリリース版)に関係。
・DX ライブラリは マルチスレッド DLL (/MTd)で作成したライブラリで無いので、
 ランタイムデータが実行プログラムに組み込まれる。
 (強制的に /MTd でリンクしてしまえば小さくなるかも)
・C++ は例外関係及び型情報を持つようにコンパイルすると大きくなる。
等が上げられます。
特に、デバッグ版とリリース版の実行ファイルのサイズは大きく違います。

ランタイムライブラリを実行ファイルにリンクする方法では、使用している
ランタイムライブラリの数によって比例的に増加します。

ただし、ランタイム DLL として作成した実行ファイルは、
ランタイムライブラリのインストールをしていないと起動できません。

Dixq (管理人)

Re:アプリケーションのサイズについて

#3

投稿記事 by Dixq (管理人) » 16年前

VisualStudioですか?
ReleaseではなくDebugにしていませんか?

もしVisualStudioでしたら、メニューバー付近に「Debug」と表示されていると思うので「Release」に変更して下さい。
もし表示されていない時は「ビルド」>「構成マネージャー」からも変更できます。

自動変数の表示など、デバッグできなくなる代わりに、実行ファイルが軽くなります。実行速度も変わるようなので、配布時にはReleaseにするといいです。

後、Releaseにしたままでデバッグすると、自動変数に変な値が表示されるので、デバッグする時はDebugに戻してください。

kazuoni

Re:アプリケーションのサイズについて

#4

投稿記事 by kazuoni » 16年前

御津凪さん、管理人さんご回答ありがとうございます^^

お二方のおっしゃる通りでした。。
今まで全く気にしたことがなかったので
デバッグ・リリースの全く違いを理解できていませんでした。
こんな性能のいいvisual C++がまだ使いこなせてません^^;
でもDebug機能はすごいですね。
学校で使ってるLinuxはこの機能がなく、
エラーと言えば「セグメンテーション違反」ですね^^;
最初のころはポインタで躓いていたので、
このエラー文字でどれだけ苦しんだことか・・・w

すみません。。話がそれました。
本当にありがとうございました。

またよろしくお願いします。

閉鎖

“C言語何でも質問掲示板” へ戻る