Link Errors Compiling TSE - Could use some help
by Tom Bushby · in Torque Game Engine Advanced · 06/28/2006 (9:23 am) · 14 replies
Hello,
I've been trying to get TSE to compile for awhile now, with little success.
I successfully compile T2D + TGE, so I have the Microsoft SDK installed, and I also downloaded the DirectX SDK April 2006 to use with TSE - is this compatible?
I've been getting alot of Link errors with TSE and the other solutions that are with TSE:
As you can see, I'm getting alot of errors and warnings. I've searched the forums and resources alot, and can't seem to find anything that is helpful.
Many posts meantion the SDK Extras for the DirectX SDK, however I can't find an Extras of the April 2006 version - so I'm downloading the SDK and Extras for DirectX SDK Feb 2005 to see if that works, but it's going to be along time before it's finished downloading.
There was a very useful post on one of the resources about compiling and setting up all your includes (I've set mine up as good as I can tell), but it was chopped off half way because of that forum bug that cuts up some older posts. So, that wasn't much help.
Have any of you got any advice? I could really use some help here. I'm new to TSE, however I'm not new to TGE or T2D.
I'm grateful for any help,
Thank you,
- Tom.
I've been trying to get TSE to compile for awhile now, with little success.
I successfully compile T2D + TGE, so I have the Microsoft SDK installed, and I also downloaded the DirectX SDK April 2006 to use with TSE - is this compatible?
I've been getting alot of Link errors with TSE and the other solutions that are with TSE:
Quote:
(Please see next posts. I was a few thousand characters over the limit for this post. Thanks.)
As you can see, I'm getting alot of errors and warnings. I've searched the forums and resources alot, and can't seem to find anything that is helpful.
Many posts meantion the SDK Extras for the DirectX SDK, however I can't find an Extras of the April 2006 version - so I'm downloading the SDK and Extras for DirectX SDK Feb 2005 to see if that works, but it's going to be along time before it's finished downloading.
There was a very useful post on one of the resources about compiling and setting up all your includes (I've set mine up as good as I can tell), but it was chopped off half way because of that forum bug that cuts up some older posts. So, that wasn't much help.
Have any of you got any advice? I could really use some help here. I'm new to TSE, however I'm not new to TGE or T2D.
I'm grateful for any help,
Thank you,
- Tom.
#2
06/28/2006 (9:26 am)
Quote:------ Build started: Project: map2dif plus, Configuration: Debug Win32 ------Continued in next post.
Compiling...
-----------------------------
Removed to keep this short - all fine here
-----------------------------
Generating Code...
Linking...
bspNode.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/INCREMENTAL:NO' specification
engine_debug.lib(DXDiagNVUtil.obj) : error LNK2019: unresolved external symbol __imp__VariantClear@4 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::GetProperty(struct NVDXDiagWrapper::IDxDiagContainer *,unsigned short const *,class std::basic_string,class std::allocator > *)" (?GetProperty@DXDiagNVUtil@NVDXDiagWrapper@@QAEJPAUIDxDiagContainer@2@PBGPAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@Z)
engine_debug.lib(DXDiagNVUtil.obj) : error LNK2019: unresolved external symbol __imp__VariantInit@4 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::GetProperty(struct NVDXDiagWrapper::IDxDiagContainer *,unsigned short const *,class std::basic_string,class std::allocator > *)" (?GetProperty@DXDiagNVUtil@NVDXDiagWrapper@@QAEJPAUIDxDiagContainer@2@PBGPAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@Z)
engine_debug.lib(DXDiagNVUtil.obj) : error LNK2019: unresolved external symbol __imp__CoCreateInstance@20 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::InitIDxDiagContainer(void)" (?InitIDxDiagContainer@DXDiagNVUtil@NVDXDiagWrapper@@QAEJXZ)
engine_debug.lib(DXDiagNVUtil.obj) : error LNK2019: unresolved external symbol __imp__CoInitialize@4 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::InitIDxDiagContainer(void)" (?InitIDxDiagContainer@DXDiagNVUtil@NVDXDiagWrapper@@QAEJXZ)
engine_debug.lib(DXDiagNVUtil.obj) : error LNK2019: unresolved external symbol __imp__CoUninitialize@0 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::FreeIDxDiagContainer(void)" (?FreeIDxDiagContainer@DXDiagNVUtil@NVDXDiagWrapper@@QAEJXZ)
../tools/map2dif_plus_DEBUG.exe : fatal error LNK1120: 5 unresolved externals
Build log was saved at "file://c:\TSE\tse\tools\out.VC6.DEBUG\map2dif plus\BuildLog.htm"
map2dif plus - 6 error(s), 1 warning(s)
#3
- Tom.
06/28/2006 (9:26 am)
Quote:------ Build started: Project: Torque Shader Engine, Configuration: Debug Win32 ------Thanks,
Performing Custom Build Step
Performing Custom Build Step
Performing Custom Build Step
Performing Custom Build Step
Compiling...
-----------------------------
Removed to keep this short - all fine here
-----------------------------
dxVersionChecker.cpp
c:\program files\microsoft directx sdk (april 2006)\include\strsafe.h(5595) : warning C4996: '_vsnprintf' was declared deprecated
c:\program files\microsoft visual studio 8\vc\include\stdio.h(339) : see declaration of '_vsnprintf'
Message: 'This function or variable may be unsafe. Consider using _vsnprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
c:\program files\microsoft directx sdk (april 2006)\include\strsafe.h(5635) : warning C4996: '_vsnwprintf' was declared deprecated
c:\program files\microsoft visual studio 8\vc\include\wchar.h(719) : see declaration of '_vsnwprintf'
Message: 'This function or variable may be unsafe. Consider using _vsnwprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
c:\program files\microsoft directx sdk (april 2006)\include\strsafe.h(5719) : warning C4996: '_vsnprintf' was declared deprecated
c:\program files\microsoft visual studio 8\vc\include\stdio.h(339) : see declaration of '_vsnprintf'
Message: 'This function or variable may be unsafe. Consider using _vsnprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
c:\program files\microsoft directx sdk (april 2006)\include\strsafe.h(5871) : warning C4996: '_vsnwprintf' was declared deprecated
c:\program files\microsoft visual studio 8\vc\include\wchar.h(719) : see declaration of '_vsnwprintf'
Message: 'This function or variable may be unsafe. Consider using _vsnwprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
c:\tse\tse\engine\platformwin32\dxversionchecker.cpp(153) : warning C4996: '_wsplitpath' was declared deprecated
c:\program files\microsoft visual studio 8\vc\include\stdlib.h(782) : see declaration of '_wsplitpath'
Message: 'This function or variable may be unsafe. Consider using _wsplitpath_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
-----------------------------
Removed to keep this short - all fine here
-----------------------------
c:\tse\tse\engine\gfx\d3d\gfxd3ddevice.cpp(34) : warning C4482: nonstandard extension used: enum 'GFXVertexColor::ColorOrdering' used in qualified name
-----------------------------
Removed to keep this short - all fine here
-----------------------------
Compiling manifest to resources...
Linking...
LINK : warning LNK4098: defaultlib 'LIBCMTD' conflicts with use of other libs; use /NODEFAULTLIB:library
DXDiagNVUtil.obj : error LNK2019: unresolved external symbol __imp__VariantClear@4 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::GetProperty(struct NVDXDiagWrapper::IDxDiagContainer *,unsigned short const *,class std::basic_string,class std::allocator > *)" (?GetProperty@DXDiagNVUtil@NVDXDiagWrapper@@QAEJPAUIDxDiagContainer@2@PBGPAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@Z)
getdxver.obj : error LNK2001: unresolved external symbol __imp__VariantClear@4
DXDiagNVUtil.obj : error LNK2019: unresolved external symbol __imp__VariantInit@4 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::GetProperty(struct NVDXDiagWrapper::IDxDiagContainer *,unsigned short const *,class std::basic_string,class std::allocator > *)" (?GetProperty@DXDiagNVUtil@NVDXDiagWrapper@@QAEJPAUIDxDiagContainer@2@PBGPAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@Z)
getdxver.obj : error LNK2001: unresolved external symbol __imp__VariantInit@4
DXDiagNVUtil.obj : error LNK2019: unresolved external symbol __imp__CoCreateInstance@20 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::InitIDxDiagContainer(void)" (?InitIDxDiagContainer@DXDiagNVUtil@NVDXDiagWrapper@@QAEJXZ)
getdxver.obj : error LNK2001: unresolved external symbol __imp__CoCreateInstance@20
DXDiagNVUtil.obj : error LNK2019: unresolved external symbol __imp__CoInitialize@4 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::InitIDxDiagContainer(void)" (?InitIDxDiagContainer@DXDiagNVUtil@NVDXDiagWrapper@@QAEJXZ)
getdxver.obj : error LNK2001: unresolved external symbol __imp__CoInitialize@4
DXDiagNVUtil.obj : error LNK2019: unresolved external symbol __imp__CoUninitialize@0 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::FreeIDxDiagContainer(void)" (?FreeIDxDiagContainer@DXDiagNVUtil@NVDXDiagWrapper@@QAEJXZ)
getdxver.obj : error LNK2001: unresolved external symbol __imp__CoUninitialize@0
getdxver.obj : error LNK2019: unresolved external symbol __imp__SysStringLen@4 referenced in function "long __cdecl GetDirectXVersionViaDxDiag(unsigned long *,unsigned long *,unsigned short *)" (?GetDirectXVersionViaDxDiag@@YAJPAK0PAG@Z)
../example/TSE_DEBUG.exe : fatal error LNK1120: 6 unresolved externals
Creating browse information file...
Microsoft Browse Information Maintenance Utility Version 8.00.50727
Copyright (C) Microsoft Corporation. All rights reserved.
Build log was saved at "file://c:\TSE\tse\engine\out.vc7.win32.debug\BuildLog.htm"
Torque Shader Engine - 12 error(s), 7 warning(s)
========== Build: 4 succeeded, 3 failed, 0 up-to-date, 5 skipped ==========
- Tom.
#4
06/28/2006 (10:15 am)
Have you used this compikler for somthing other than TSE...is it possible you have it LINKED to LIB's that are not TSE....hmmmm....hey are you useing VC++ 6??if thats so I believe you will continue to have a hard time the last Direct x SDK that you may use for 6 was i believe febuary.....but it looks like you may be using 8....hmmm....anyone else see anything .....I had problems with 2005 so I moved most of the LIB's where the compiler was already looking cause it didnt like me makeing new paths for it to do the linking..and i could never figure out why...but after i moved then it compiled fine....if you need I can send you a compiled EXE for the latest head just send me an Email...lmaceleighton@msn.com...if you havent already found your problem...
#5
What exactly did you move to get it all to work? I would like to get TSE compiling soon-ish.
I thought this was quite amusing:
Thanks,
- Tom.
06/28/2006 (10:24 am)
I've compiled both TGE and TGB with this compiler. I use Visual C++ Express 2005. ;)What exactly did you move to get it all to work? I would like to get TSE compiling soon-ish.
I thought this was quite amusing:
Quote:Torque Shader Engine - 2533 error(s), 6 warning(s)
Thanks,
- Tom.
#6
06/28/2006 (11:44 am)
Did you try doing what they said to do to get TSE to compile on VC++ Express 2005? Specifically Nathan King's post. (Nov 28, 2005 at 15:08)
#7
....
I just used the VC7 project's solution, and it worked. Still got some warnings, but there are no errors. :)
Very strange. When I was using VC8 with Express I got it down to one error, and then it went back up to 12. This is why I tend to dislike Windows sometimes.
Thanks for the help!
06/28/2006 (11:57 am)
I followed a similar set of instructions posted elsewhere. Thanks for the link, I'll try those as well.....
I just used the VC7 project's solution, and it worked. Still got some warnings, but there are no errors. :)
Very strange. When I was using VC8 with Express I got it down to one error, and then it went back up to 12. This is why I tend to dislike Windows sometimes.
Thanks for the help!
#8
06/29/2006 (3:48 pm)
It all has to do with the compiler....some are differnt just like differnt people or groups that make software all think they have the best way to do it....as you know this is where you run into conflicts...everybodies interface is just a little differnt ....now what I did to get this to work...Ill tell you but this is probably the wrong way to do it but,...It compiled so......I went into the direct x SDK and made a copy of all the LIB file and pretty much everything that the compiler was returning for error and put it the ENGINE section of TSE...now this is probably somthing the elder coders and guru's will probably send me hate mail for the rest of my days..and tell you not to do...but it worked for me and I got 0 errors!!So give it a try but of course make a BACK UP...i cant stress that enough....and like i said...i'd be more than happy to send a compiled EXE.....hope ive been a help
#9
c:\tse\engine\atlas\core\atlasresourcetoc.h(465) : error C3867: 'AtlasTOC::cbOnChunkWriteComplete': function call missing argument list; use '&AtlasTOC::cbOnChunkWriteComplete' to create a pointer to member
c:\tse\engine\atlas\core\atlasresourcetoc.h(451) : while compiling class template member function 'void AtlasResourceTOC::queueChunkUpdate(StubType *)'
with
[
StubType=AtlasResourceConfigStub
]
I notice that a pile of new Atlas code was checked in in the early hours, always a good time for breaking things. As i say might just be me but would appreciate some help. (Yes i have followed all build instructions)
06/30/2006 (2:08 pm)
Is this a broken build, i had a working build before took the head from CVS. The VC8 project is missing some files unless i messed up CVS (entirely possible). The VC7 does much better but fails onc:\tse\engine\atlas\core\atlasresourcetoc.h(465) : error C3867: 'AtlasTOC::cbOnChunkWriteComplete': function call missing argument list; use '&AtlasTOC::cbOnChunkWriteComplete' to create a pointer to member
c:\tse\engine\atlas\core\atlasresourcetoc.h(451) : while compiling class template member function 'void AtlasResourceTOC
with
[
StubType=AtlasResourceConfigStub
]
I notice that a pile of new Atlas code was checked in in the early hours, always a good time for breaking things. As i say might just be me but would appreciate some help. (Yes i have followed all build instructions)
#10
06/30/2006 (3:17 pm)
New atlas code compiles fine for me with VC7. Maybe you just need to add the new atlas files into the VC8 project.
#11
Noticed on the other thread http://www.garagegames.com/mg/forums/result.thread.php?qt=46940 they mentioned some CVS worries but others are getting builds ... yeah it did start to work when i added in files manually. Haven't done a totally clean build so not really sure.
Don't understand my compile error though could it be a VC 2005 thing? I guess the main build is going on in VC7 and i could be on my own here.
My C++ is a bit crap and i tend to go all dizzy at the sight of templates
06/30/2006 (3:37 pm)
Hi Phil nice to see you keeping unsocial hours...Noticed on the other thread http://www.garagegames.com/mg/forums/result.thread.php?qt=46940 they mentioned some CVS worries but others are getting builds ... yeah it did start to work when i added in files manually. Haven't done a totally clean build so not really sure.
Don't understand my compile error though could it be a VC 2005 thing? I guess the main build is going on in VC7 and i could be on my own here.
My C++ is a bit crap and i tend to go all dizzy at the sight of templates
#12
Noticed on the other thread http://www.garagegames.com/mg/forums/result.thread.php?qt=46940 they mentioned some CVS worries but others are getting builds ... yeah it did start to work when i added in files manually. Haven't done a totally clean build so not really sure.
Don't understand my compile error though could it be a VC 2005 thing? I guess the main build is going on in VC7 and i could be on my own here.
My C++ is a bit crap and i tend to go all dizzy at the sight of templates
06/30/2006 (3:42 pm)
Hi Phil nice to see you keeping unsocial hours...Noticed on the other thread http://www.garagegames.com/mg/forums/result.thread.php?qt=46940 they mentioned some CVS worries but others are getting builds ... yeah it did start to work when i added in files manually. Haven't done a totally clean build so not really sure.
Don't understand my compile error though could it be a VC 2005 thing? I guess the main build is going on in VC7 and i could be on my own here.
My C++ is a bit crap and i tend to go all dizzy at the sight of templates
#13
Noticed on the other thread http://www.garagegames.com/mg/forums/result.thread.php?qt=46940 they mentioned some CVS worries but others are getting builds ... yeah it did start to work when i added in files manually. Haven't done a totally clean build so not really sure.
Don't understand my compile error though could it be a VC 2005 thing? I guess the main build is going on in VC7 and i could be on my own here.
My C++ is a bit crap and i tend to go all dizzy at the sight of templates
06/30/2006 (3:54 pm)
Hi Phil nice to see you keeping unsocial hours...Noticed on the other thread http://www.garagegames.com/mg/forums/result.thread.php?qt=46940 they mentioned some CVS worries but others are getting builds ... yeah it did start to work when i added in files manually. Haven't done a totally clean build so not really sure.
Don't understand my compile error though could it be a VC 2005 thing? I guess the main build is going on in VC7 and i could be on my own here.
My C++ is a bit crap and i tend to go all dizzy at the sight of templates
#14
Thought i was going mad hadn't used TSE for about 4 weeks and accidently grab a brand new build serves me right i guess.
06/30/2006 (3:56 pm)
ANSWER FOUND - the build is broken for us skinflints who use VC 2005 (cause it is free and very good). I posted it on http://www.garagegames.com/mg/forums/result.thread.php?qt=46940.Thought i was going mad hadn't used TSE for about 4 weeks and accidently grab a brand new build serves me right i guess.
Torque Owner Tom Bushby
Continued in next post.