どうも良く分からない状況ですが、Visual C++ 2005で.codファイルを生成するオプションを指定しても生成されないケースがあります。
とりあえず回避方法が分かったのでメモ。
現象 §
- Visual C++ 2005でWin32のスタティックライブラリのプロジェクトを作成する
- .cppファイルを1つ適当にプロジェクトに追加しておく
- Releaseビルドに切り換える
- プロジェクトのプロパティを開き、構成プロパティ→C/C++→出力ファイルを選び、「アセンブリの出力」を「アセンブリ コード、コンピュータ語コード、ソース コード (/FAcs)」に切り換える
- ビルド実行
- .codファイルはできていない
同様の手順で、デバッグビルドの場合や、Releaseビルドでもコンソールアプリケーションのプロジェクトの場合は.codファイルが生成されます。
つまり、ここで述べた範囲内で言えば、スタティックライブラリ+Releaseビルドの組み合わせの場合のみ生成されません。
回避方法 §
- プロジェクトのプロパティを開き、構成プロパティ→C/C++→最適化を選び「プログラム全体の最適化」の「リンク時のコード生成を有効にする (/GL)」を「いいえ」に変更する
ただし、これに伴ってリンク時のコード生成は行われなくなり、生成されるコードのパフォーマンスが低下する可能性があり得ます。
ちなみに、コンソールアプリケーションのプロジェクトでは、上記の指定を「いいえ」に切り換えない状態でも.codファイルは生成されます。なぜこのような差があるのか、理由は未確認です。
感想 §
結局、BuildLog.htmに書かれたコマンドライン(レスポンスファイル)の中身を手動で展開して、1つ1つオプションを落としながら特定しました。やはり低レベルの知識がないとトラブルへの対処はできないですね。