ユーザ用ツール

サイト用ツール


技術メモ:vc_6.0_build

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

技術メモ:vc_6.0_build [2011/03/10 19:19] (現在)
nabium 作成
ライン 1: ライン 1:
 +====== VC++6.0のリリースビルドでデバッグを容易にするための設定 ======
 +
 +リリースしたバイナリのクラッシュダンプから解析できるようにリリースビルドでもシンボル情報を出力しておく。
 +
 +外部にリリースしたバージョンはソースだけでなくバイナリやシンボル、オブジェクトも保存しておく。オブジェクトも保存しておくことで、後の再ビルドでも対象バージョンとほとんど同じバイナリが生成される。
 +
 +===== コンパイルオプション =====
 +
 +==== シンボルの生成 ====
 +
 +PDBを出力する /Zi\\
 +リリースビルドでもシンボルを生成 /DEBUG\\
 +ただしエディット・コンティニュー(/​ZI)は使用しないこと\\
 +参照されている関数のみを含める /OPT:REF
 +
 +==== 最適化 ====
 +
 +サイズに最適化する /O1\\
 +速度に最適化は使用しないこと。マイクロソフトも/​O1を推奨していて、製品には/​O1を使用しているらしい。
 +
 +==== その他 ====
 +
 +標準インクルードパスの無視 /X\\
 +不必要/​意図しないヘッダのインクルードを防止する。
 +
 +ワーニングレベルをきつくする /W4\\
 +ワーニングをエラーとして扱う /WX\\
 +上記設定でビルドできない場合
 +
 +  #pragma warning(push,​3)
 +  #include "​header.h"​
 +  #pragma warning(pop)
 +  ​
 +  #pragma warning(disable:​4201)
 +  code...
 +  #pragma warning(default:​4201)
 +
 +===== リンカの設定 =====
 +
 +==== マップファイルを生成する ====
 +
 +マップファイルの生成 /MAP\\
 +マップファイルに行情報を含める /​MAPINFO:​LINES\\
 +マップファイルにエクスポートされた関数を含める /​MAPINFO:​EXPORTS
 +
 +==== その他 ====
 +
 +デフォルトライブラリを無視する /​NODEFAULTS\\
 +リンクしているライブラリを表示する /WARN:3\\
 +不必要/​意図しないライブラリのリンクを防止する。
 +
 +DLLのロード位置は明示的に決める。複数のDLLでロード位置が同じ場合リロケーションされ、マップファイルのアドレスとの不一致が起こり、複雑な計算が必要になる。
 +
 +TODO:
  
技術メモ/vc_6.0_build.txt · 最終更新: 2011/03/10 19:19 by nabium