Overflowers!
I've been developing a statically-linked application using Visual Studio 2010 (well, it's cross-platform, but this is just a Windows issue).
I had few issues setting up the linking for the Debug configuration, so I didn't expect it would be hard to change it to make a Release configuration, but after an afternoon's work it's still eluding me. Trying various values for NODEFAULTLIB either get me "unresolved external symbol" errors or "already defined in" errors and sometimes both.
From my notes, I've tried NODEFAULTLIB-ing LIBCMT, MSVCRT, MSVCPRT, or none at all, with different results each time (see below for details).
Now, my Debug configuration uses /NODEFAULTLIB:MSVCRTD /NODEFAULTLIB:MSVCPRTD and that works fine, so you'd think that /NODEFAULTLIB:MSVCRT /NODEFAULTLIB:MSVCPRT would work for the Release configuration. And the fact that it doesn't is a red flag for me...
I'm linking with several other libraries - I was pretty careful to systematically make sure that they were considered exactly the same when going from Debug to Release but could that conceivably be an issue, and if so how to track it down systematically?
Thanks for your gracious time!
In the Linker/Command Line property page, All Options is:
/OUT:".\Release\SlowGold 8.exe" /NOLOGO "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MANIFEST /ManifestFile:".\Release\SlowGold 8.exe.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /PDB:".\Release\SlowGold 8.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /PGD:"C:\development\rec-vs\rec\projects\slow\Builds\VisualStudio2010\Release\SlowGold 8.pgd" /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE
and Additional Options is:
/LIBPATH:..\\..\\..\\..\\externals\\rubber