Fatal Error C1047

The object or library file 'filename' was created with an older compiler than other objects; rebuild old objects and libraries

This error can happen if you use a new version of the compiler to build your project, but don't do a clean rebuild of existing object files or libraries.


C1047 is caused when object files or libraries built by using /GL or /LTCG in different versions of the Visual Studio C/C++ compiler toolset get linked together. For example, you can't link a /LTCG library built by using Visual Studio 2019 version 16.7 to an app built by using Visual Studio 2019 version 16.8. Both the major and minor update numbers of the toolset used to compile the objects and libraries must match exactly.

To resolve C1047, rebuild all object files or libraries by using the same version of the toolset.

See also

/GL (Whole Program Optimization)
/LTCG (Link-time code generation)
C++ binary compatibility between Visual Studio versions