よく使うコンパイル・リンカオプション

前回の分割コンパイルの話題ですは、コンパイラとリンカの基本的な使い方について説明しました。

今回はもう一歩進んで、便利なコンパイル・リンカオプションを紹介します。

1.最適化オプション

これはコンパイラオプションです。

コードサイズの最適化を実施することで、可能な限りコードサイズを小さくすることが 出来ます。オプションは /O1 オプションです。

2.警告レベルの指定

これはコンパイラオプションです。

より望ましいコーディングができることをコンパイラが検出した場合、それを警告と して出力させることができます。 /W4 オプションまたは /W3 を指定して コンパイルすればよいでしょう。

3.Unicode ビルド

コンパイラオプションとして /DUNICODE と /D_UNICODE を渡すことにより、 Win32 API 及び CRT ライブラリ関数のワイドキャラクター版が使用されます。

4.デバッグ情報の生成

/Zi コンパイラオプション及び /DEBUG, /PDB リンカオプションで、 PDB (プログラム・データベース, シンボルファイルとも言います) を生成できます。

PDB ファイルはソースコードのシンボル情報 (変数名や関数名等) です。

この情報はメモリダンプの解析時に使用しますので、リリースビルド作成時にも PDB を生成するようにしてください。

コマンド例は次のようになります。

> cl /c /Zi foo.cpp
> link foo.obj /PDB:foo.pdb /DEBUG 

5.ターゲット Windows バージョン指定

Windows API の中には Windows のバージョンによって使えるもの使えないものがあります。 コンパイル時に _WIN32_WINNT でターゲットとなる Windows のバージョンを指定すると よいでしょう。

> cl /c /D_WIN32_WINNT=0x0602 test.cpp

尚、指定する値は以下の通りです。

sdkddkver.h に記述があります。