致命的なエラー C1047

オブジェクトまたはライブラリ ファイル 'filename' は、他のオブジェクトよりも古いコンパイラで作成されました。古いオブジェクトおよびライブラリをリビルドしてください

このエラーは、新しいバージョンのコンパイラを使用してプロジェクトをビルドする際、既存のオブジェクト ファイルまたはライブラリをクリーン リビルドしなかった場合に発生する可能性があります。

解説

C1047 は、/GL または /LTCG を使用してビルドされたオブジェクト ファイルまたはライブラリが、Visual Studio C/C++ コンパイラ ツールセットの異なるバージョンでリンクされている場合に発生します。 たとえば、Visual Studio 2019 バージョン 16.7 を使用してビルドされた /LTCG ライブラリを、Visual Studio 2019 バージョン 16.8 を使用してビルドされたアプリにリンクすることはできません。 オブジェクトとライブラリのコンパイルに使用されるツールセットのメジャー更新番号とマイナー更新番号の両方が、正確に一致する必要があります。

C1047 を解決するには、同じバージョンのツールセットを使用して、すべてのオブジェクト ファイルまたはライブラリをリビルドします。

関連項目

/GL(プログラム全体の最適化)
/LTCG (リンク時のコード生成)
Visual Studio バージョン間の C++ バイナリ互換性