I have a project that I'm building in C++ in Release mode in Visual Studio 2008 SP1 on Windows 7 and when I build it I keep getting:
fatal error C1047: The object or library file '.\Release\foobar.obj' was created with an older compiler than other objects; rebuild old objects and libraries.
The error occurs while linking.
I've tried deleting the specific object file and rebuilding but that doesn't fix it. I've also tried blowing away the whole release build folder and rebuilding but that also didn't fix it. Any ideas?
I had this problem but my solution differs:
For me the culprit was that an included external library was compiled with
/GL (=Enable link-time code generation under C/C++/ Optimization / Whole Program Optimization)
using an older visual studio (2005). I rebuild said library in 2005 without /GL and the linker error disappeared in 2008. As MSDN states it has to do with the /LTCG setting, this is set automatically by the /GL flag: http://msdn.microsoft.com/en-us/library/ms173554%28v=vs.80%29.aspx
I would suggest reinstalling VS 2008 SP1. Have you installed a different VS (e.g. VS Express) in the meantime? This is known to cause interference with an existing VS installation.
You could try checking the compiler and linker versions by running cl.exe
and link.exe
from the Visual Studio command prompt.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With