Game Development Community

max2map RELEASE error

by Desmond Fletcher · in Torque Game Engine · 05/04/2002 (12:39 pm) · 20 replies

I'm trying to build max2map for max40; I get this when building the release version:

Creating library ../tools/out.VC6.RELEASE/max2mapExporter.lib and object ../tools/out.VC6.RELEASE/max2mapExporter.exp
engine.lib(winCPUInfo.obj) : error LNK2001: unresolved external symbol _detectX86CPUInfo
../tools/max2mapExporter.dle : fatal error LNK1120: 1 unresolved externals

Well...I found a post from BadGuy on how to switch from SDK31 to maxsdk40...now this is what I get:

Creating library ../tools/out.VC6.RELEASE/max2mapExporter.lib and object ../tools/out.VC6.RELEASE/max2mapExporter.exp
main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClassDesc::AddInterface(class FPInterface *)" (?AddInterface@ClassDesc@@UAEXPAVFPInterface@@@Z)
main.obj : error LNK2001: unresolved external symbol "public: virtual class FPInterface * __thiscall ClassDesc::GetInterface(class Interface_ID)" (?GetInterface@ClassDesc@@UAEPAVFPInterface@@VInterface_ID@@@Z)
main.obj : error LNK2001: unresolved external symbol "public: virtual class FPInterface * __thiscall ClassDesc::GetInterface(char *)" (?GetInterface@ClassDesc@@UAEPAVFPInterface@@PAD@Z)
main.obj : error LNK2001: unresolved external symbol "public: virtual char * __thiscall ClassDesc::GetRsrcString(long)" (?GetRsrcString@ClassDesc@@UAEPADJ@Z)
engine.lib(winCPUInfo.obj) : error LNK2001: unresolved external symbol _detectX86CPUInfo
../tools/max2mapExporter.dle : fatal error LNK1120: 5 unresolved externals
Error executing link.exe.

max2mapExporter.dle - 6 error(s), 0 warning(s)

Any ideas?

#1
05/04/2002 (1:29 pm)
hmm my head is a few days old ..
but still working ..
you did change Both max31 entries in the settings right?
(C/C++, Link)
#2
05/04/2002 (1:33 pm)
ahhh, no, thx--I'll give that a try

Ok, changed to maxsdk40 in both C/C++ and Link:

Creating library ../tools/out.VC6.RELEASE/max2mapExporter.lib and object ../tools/out.VC6.RELEASE/max2mapExporter.exp
main.obj : error LNK2001: unresolved external symbol "public: virtual char * __thiscall ClassDesc::GetRsrcString(long)" (?GetRsrcString@ClassDesc@@UAEPADJ@Z)
../tools/max2mapExporter.dle : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
#3
05/04/2002 (1:36 pm)
np :)
should be all good after
#4
05/04/2002 (1:39 pm)
Still having a prob: See above edited post
#5
05/04/2002 (1:45 pm)
hmm ..

I believe this is the problem that Tim Gift spoke of
having to redefine INT_PTR to long..
or something like that
I never had this problem ..

tho I did once long ago when I used the platformSDK from microsoft to compile my max plugs...

I use Visual Studio 6.0 with no ServicePacks
#6
05/04/2002 (1:49 pm)
Just did a complete rebuild and still get the same error as above. Do you remember where Tim posted that info? Also, I'm using the same version as you.

----------------------------------
Edit: Just found it in the changelog.txt. I'll give it a try:

"There are some problems building the Max 4 project, it works fine with VC7, but generates link errors with VC6. This has to do with a difference in the way the compilers define INT_PTR (a windows typedef). You can get it to link under VC6 by redefining INT_PTR to an int (instead of a long) in the VC6 header BASETSD.H. "
#7
05/04/2002 (1:55 pm)
i think this errors come from the windows sdk and VC++, i had the same problem and found a solution in the USF Forum (sorry it's a german forum)
I browser for the thread and post it here.

meanwhile use this 3xd.bloodcult.net/Public/max2mapExporter_Max4.dle


and sorry for my bad english (i had some glases wine ;))
#8
05/04/2002 (2:07 pm)
so does your's build now then? :)
#9
05/04/2002 (2:16 pm)
yupp, i had the same problems and (i'm not sure) i get the newest platform SDK, change the links from Max SDK3.1 to SDK4.0 and it works.

And one of our Modeler told me, it works fine.

I hope it was this,
maybe after enough sleep my brain work better again ;)
#10
05/04/2002 (2:18 pm)
Nope, same error again.
#11
05/04/2002 (2:25 pm)
Could you send me the german post Sven? Ich spreche ein bichen.

P.S. I've already got the exporter for max4--I'm trying to make some changes: there are two errors in the ambient and emergency_ambient_color lines that get written to the map (there are commas between the specific and its argument--there shouldn't be).

@BadGuy, it appears that the INT_PTR is already int instead of long as Tim's changelog suggested it wasn't.
#12
05/04/2002 (2:29 pm)
oki i found the thread :D

www.usf.de/forum/Forum9/HTML/001008.html

i hope it help's you out :D
#13
05/04/2002 (2:33 pm)
ahh well that could be a problem ...
change it the other way

Edit:
cause now your header is prolly wrong compared to the lib
#14
05/04/2002 (2:41 pm)
Change what the other way?
#15
05/04/2002 (2:55 pm)
in your header you said it is int
well ive a feeling the lib call
PB2Export TCHAR* GetString(StringResID id) { return cd->GetRsrcString(id); }
that there with:
typedef INT_PTR StringResID;

they look like they will lead to a confliction if you have int as INT_PTR
if the lib wants long

Edited.
#16
05/04/2002 (3:10 pm)
I think its working now:

-->redefined INT_PTR to an int (instead of a long) in the VC6 header BASETSD.H (not the BASETSD.H in the Torque SDK).

Thx for all your help.


P.S. I'll look at updating the MS Core SDK also; not sure what that will mess up either.
#17
05/14/2002 (8:26 pm)
ok, this is driving me crazy now---did all the above, map2map was compiling ok for a while--now I get the same errors as the first post in this thread. Using the maxsdk40 settings as recommended by BadGuy. Anybody have any ideas?

I'm trying to fix some problems with max2map and can't even get the doggone thing to compile :)
#18
05/15/2002 (3:16 am)
the exact same errors?
if so then you can assume that the max40 static libs are not in the path ..cause it is not there to link.
Or it found the old ones first somehow.

it Must be in the project settings ..

check this :
did you change both for release and debug builds? (from max31 to max40?)

Edited.
#19
05/15/2002 (10:31 am)
Ok, I made both release and build settings for maxsdk40. Now I get this:
LINK : fatal error LNK1181: cannot open input file "ljpeg.lib"

Am I closer or farther? :)
#20
05/15/2002 (3:00 pm)
heh closer ..
your in release build, youll need to build the release libs now for those projects :
(ljpeg, lpng, lungif)