Page 1 of 1

[BUG] CEGUI 0.7.1 SDK for VC9, release DLLs using debug CRT

Posted: Sat Nov 21, 2009 00:38
by Inverness
The problem is that the CEGUI 0.7.1 solution file for Visual Studio 2008 (VC9) is using the Multi-threaded Debug DLL for the ReleaseWithSymbols configuration. This causes _DEBUG to be defined which results in a release version of CEGUIBase.dll using the debug runtime (not for redistribution) and loading debug versions of dynamic modules by appending _d to the module name. This results in a ripple effect of errors as the debug modules load debug versions of their dependencies, this ultimately results in a crash as the debug XML parser calls getSingleton() from CEGUIBase_d.dll which is loaded alongside CEGUIBase.dll.

Re: [BUG] CEGUI 0.7.1 SDK for VC9, release DLLs using debug CRT

Posted: Thu Dec 03, 2009 10:17
by CrazyEddie
I didn't look at the SDKs to confirm (or not) that the release files are linked incorrectly, though I can confirm that using a default, unmodified premake will result in _DEBUG usage for the ReleaseWithSymbols config. This is something we're aware of and are currently considering a customised premake executable which adds options to fix this issue (I did a proof of concept prior to the 0.7.1 release, though AFAIK this was not used for generating the final project / solution files).

CE.

Re: [BUG] CEGUI 0.7.1 SDK for VC9, release DLLs using debug CRT

Posted: Sat Jan 30, 2010 11:10
by scriptkid
Hi,

The SDKs on the Download page are fixed. By using a customised premake.exe, the ReleaseWithSymbols configuration is now as expected:

-No optimisations
-Program database (no edit and continue)
-Multitreaded DLL

To avoid the overwriting of the regular Release files (which was another issue), these files are build into sub directories ('bin/ReleaseWithSymbols' and 'lib/ReleaseWithSymbols'). All other configs still link into 'bin' and 'lib'. Note that the V7 branch doesn't do this yet, the premake updates need to be applied to the svn premake.exe yet.

A bit late, but at least we have this fixed now for future SDKs in advance ;)