Game Development Community

Map2dif linkerror on GNU/Linux

by Anders Dahnielson · in Torque Game Engine · 04/26/2004 (9:55 am) · 9 replies

--> Linking map2dif_DEBUG.bin
../engine/out.GCC3.DEBUG/engine_DEBUG.a(x86UNIXProcessControl.obj): In function 'Cleanup(bool)':
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXProcessControl.cc:78: undefined reference to 'OpenGLShutdown'
../engine/out.GCC3.DEBUG/engine_DEBUG.a(x86UNIXWindow.obj): In function 'ProcessSYSWMEvent':
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:206: undefined reference to 'NotifySelectionEvent(_XEvent&)'
../engine/out.GCC3.DEBUG/engine_DEBUG.a(x86UNIXWindow.obj): In function 'Platform::AlertOK(char const*, char const*)':
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:429: undefined reference to 'XMessageBox::XMessageBox[in-charge](_XDisplay*)'
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:430: undefined reference to 'XMessageBox::alertOK(char const*, char const*)'
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:432: undefined reference to 'XMessageBox::~XMessageBox [in-charge]()'
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:432: undefined reference to 'XMessageBox::~XMessageBox [in-charge]()'
../engine/out.GCC3.DEBUG/engine_DEBUG.a(x86UNIXWindow.obj): In function 'Platform::AlertOKCancel(char const*, char const*)':
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:454: undefined reference to 'XMessageBox::XMessageBox[in-charge](_XDisplay*)'
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:455: undefined reference to 'XMessageBox::alertOKCancel(char const*, char const*)'
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:459: undefined reference to 'XMessageBox::~XMessageBox [in-charge]()'
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:459: undefined reference to 'XMessageBox::~XMessageBox [in-charge]()'
../engine/out.GCC3.DEBUG/engine_DEBUG.a(x86UNIXWindow.obj): In function 'Platform::AlertRetry(char const*, char const*)':
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:482: undefined reference to 'XMessageBox::XMessageBox[in-charge](_XDisplay*)'
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:483: undefined reference to 'XMessageBox::alertRetryCancel(char const*, char const*)'
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:487: undefined reference to 'XMessageBox::~XMessageBox [in-charge]()'
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:487: undefined reference to 'XMessageBox::~XMessageBox [in-charge]()'
../engine/out.GCC3.DEBUG/engine_DEBUG.a(x86UNIXWindow.obj): In function 'Platform::setWindowLocked(bool)':
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:534: undefined reference to 'typeinfo for UInputManager'
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:539: undefined reference to 'UInputManager::setWindowLocked(bool)'
../engine/out.GCC3.DEBUG/engine_DEBUG.a(x86UNIXWindow.obj): In function 'Platform::process()':
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:580: undefined reference to 'PollRedbookDevices()'
../engine/out.GCC3.DEBUG/engine_DEBUG.a(x86UNIXWindow.obj): In function 'Platform::init()':
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:684: undefined reference to 'InstallRedBookDevices()'
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:689: undefined reference to 'OpenGLInit'
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:697: undefined reference to 'OpenGLDevice::create()'
../engine/out.GCC3.DEBUG/engine_DEBUG.a(x86UNIXWindow.obj): In function 'Platform::initWindow(Point2I const&, char const*)':
/home/anders/Development/torque/engine/platformX86UNIX/x86UNIXWindow.cc:739: undefined reference to 'InitOpenGL()'
collect2: ld returned 1 exit status
make: *** [map2dif_DEBUG.bin] Error 1

#1
04/26/2004 (9:56 am)
I'm getting the link error above for map2dif when building the tools. My stats are follwing, gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7) and latest torque from cvs (HEAD).
#2
04/26/2004 (10:30 am)
...
#3
04/26/2004 (2:23 pm)
I just checked out and tried to build release 1.2.2, I get the same error there.
#4
04/27/2004 (1:33 am)
Ok, but if I run:
make clean && make tools
It will build the tools without problem. I think this befaviour is a quite serious bug in the build system.
#5
04/27/2004 (3:00 am)
Hm, why do you need map2dif on linux anyways? ;)
Is there any usable map editor?
#6
04/27/2004 (4:51 am)
Since I'm exclsivelly GNU/Linux and OSX based since two year. :-)

I'm running QuArK with WineX from TransGaming. It works, there are still some small glitches with drawing update for toolbars but is nothing that stop you from working with it. I think there is a free (as in beer) version of Kylix that can compile QuArK natively on GNU/Linux but I haven't looked that deep into it...
#7
04/28/2004 (1:01 pm)
I've recently been trying to build Torque on Linux (Mandrake 10) and I'm getting the same linker error with a somewhat recent "HEAD" version. Anyone figure out what's going on?

It seems like the "engine_DEBUG.a" library is somehow not getting linked in for the tools... but I'm so newb I haven't been able to track it down...

Thanks,

Ed
#8
04/28/2004 (2:15 pm)
Have you tried to do:
make clean && make tools
It worked for me.

PS. I'm working on adding a proper autotool build environment, so one just have to do './configure && make && make install' as usual. I'm planing to post it as a resource that one can apply by unziping it into the source tree checked out from CVS.
#9
04/29/2004 (8:27 pm)
The problem still exists in the HEAD:
http://www.garagegames.com/mg/forums/result.thread.php?qt=17818

I came to the same resolution with "make clean && make tools". Also, to keep the size down make sure you set the compile to "release".

Thanks,
Frank