VC2008 C1859ビルドエラーの回避策
環境
Windows8.1
VC2008 sp1
現象
同僚が修正したチェックインをTFSから取得したら、
「fatal error C1859: ‘Debug\xxxx.pch’ 予期しないプリコンパイル済みヘッダー エラーです。コンパイラを再度実行するだけで、問題が解決する場合があります。」
と言う謎のエラーが多発…
やったこと
クリーンとリビルド繰り返すも解決せず。
Release/Debugを切り替えるも解決せず。
まさかプロジェクトファイルが更新されたな!!
と思ったけど、チェックインされたファイルにそれっぽい個所が無い…
とりあえずぐぐると
Microsoft
https://support.microsoft.com/ja-jp/kb/976656
が出てきた。
回避策に
・Microsoft Visual Studio 2008 Service Pack 1 適用
->済み
・/analyze コンパイラ オプションを無効
->見つからない(Enterprise以上?)
・以降の工程も一応やったけど無理
何かのファイルが邪魔している可能性もあるので、
ソースディレクトリを削除して再取得。
そしてビルドしたら解決…
何だったんだろう。
結論
C1859が出てビルドエラーになりリビルドしてもダメだったら、
ソースディレクトリを削除して再取得。
追加調査
悪さしているファイルが何か原因を調査
idlが生成する
xxxx_i.c
xxxx_p.c
に差分が見つかったためリネーム。
そしたらビルドに成功しました。
ただし、現象を再現させようと名前を戻しても現象再現せず。
現象再現しないので追加調査終了…
再取得が難しい場合は、idlの生成するファイルを探して消すのもいいかもしれません。