Compiling the l3dt plugin (VC++ 2005 Express)
by Kaya Dogan · in Torque Game Engine Advanced · 02/15/2007 (12:51 am) · 6 replies
I tried to build the l3dt plugin an ran into a huge problem. Visual C++ 2005 Express does not contain MFC, so it seems that I won't be able to build the plugin (unless I purchase a copy of the VC Standard Edition, which I can't at the moment). So any help is appreciated. Is there any workaround for this? Or can someone compile the plugin, so people using VC 2005 Express (without MFC-support) can use it?
Thanks in advance
Thanks in advance
#2
02/15/2007 (12:59 am)
Hmm...so no chance to get the plugin to compile/work, yet?
#3
I haven't had much success yet but that does not mean that I will not try to get it to compile any further and post a solution to the problem when I found it *and the plugin works with TGEA RC1 / 1.0*.
Main problem is, that there is no 2005 version of the solution so it tries to links against the TSE lib of VS7 instead of the current one ...
02/15/2007 (3:53 am)
Don't know.I haven't had much success yet but that does not mean that I will not try to get it to compile any further and post a solution to the problem when I found it *and the plugin works with TGEA RC1 / 1.0*.
Main problem is, that there is no 2005 version of the solution so it tries to links against the TSE lib of VS7 instead of the current one ...
#4
02/15/2007 (4:56 am)
I got it compiled but it doesn't seem to work.
#5
This is what I get with VS 2003:
07/10/2007 (1:27 pm)
I tried compiling it recently and ran into the same problems. Anyone have the steps to get it to compile under either VS 2003 or 2005?This is what I get with VS 2003:
nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in engine.lib(platformMemory.obj) nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in engine.lib(platformMemory.obj) nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) already defined in engine.lib(platformMemory.obj) nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) already defined in engine.lib(platformMemory.obj) nafxcw.lib(afxmem.obj) : warning LNK4006: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in engine.lib(platformMemory.obj); second definition ignored nafxcw.lib(afxmem.obj) : warning LNK4006: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in engine.lib(platformMemory.obj); second definition ignored nafxcw.lib(afxmem.obj) : warning LNK4006: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) already defined in engine.lib(platformMemory.obj); second definition ignored nafxcw.lib(afxmem.obj) : warning LNK4006: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) already defined in engine.lib(platformMemory.obj); second definition ignored
#6
First, open up the TGEA SDK in VS. Under the "TGEA Lib" solution, find the file core/torqueConfig.h. Now find the line: //#define TORQUE_DISABLE_MEMORY_MANAGER and uncomment it (remove the "//" for those who don't know). Now, rebuild that project (right click on "TGEA Lib" and select "Rebuild"). You can't do this from within the l3dt_atlas solution because there are some custom build steps that have some paths hard-coded, and they only work when built from within the TGEA SDK solution file.
Now open up the "l3dt_atlas" solution file. Rebuild just the "l3dt_atlas" project file. You may have to change the path to find the TGEA library file ("engine.lib"). This is done in the project properties, so right-click on "l3dt_atlas" and select properties. Select the "linker" folder on the left side, then change the path shown with the "Additional Library Directories" entry.
All of this needs to be done because the Torque Memory Manager defines some memory operations that are then (attempting to be) redefined within some of the l3dt_atlas libraries. So, if you want to use the TMM for your games remember to go back and re-comment the #define TORQUE_DISABLE_MEMORY_MANAGER if you rebuild the engine for your game.
07/18/2007 (9:46 am)
Alright I finally figured it out! There's probably a better way to do this, but this is how it works right now.First, open up the TGEA SDK in VS. Under the "TGEA Lib" solution, find the file core/torqueConfig.h. Now find the line: //#define TORQUE_DISABLE_MEMORY_MANAGER and uncomment it (remove the "//" for those who don't know). Now, rebuild that project (right click on "TGEA Lib" and select "Rebuild"). You can't do this from within the l3dt_atlas solution because there are some custom build steps that have some paths hard-coded, and they only work when built from within the TGEA SDK solution file.
Now open up the "l3dt_atlas" solution file. Rebuild just the "l3dt_atlas" project file. You may have to change the path to find the TGEA library file ("engine.lib"). This is done in the project properties, so right-click on "l3dt_atlas" and select properties. Select the "linker" folder on the left side, then change the path shown with the "Additional Library Directories" entry.
All of this needs to be done because the Torque Memory Manager defines some memory operations that are then (attempting to be) redefined within some of the l3dt_atlas libraries. So, if you want to use the TMM for your games remember to go back and re-comment the #define TORQUE_DISABLE_MEMORY_MANAGER if you rebuild the engine for your game.
Torque 3D Owner Marc Dreamora Schaerer
Gayasoft