Page 1 of 1

Compile error. Version question.

PostPosted: Tue Jan 17, 2012 7:40 pm
by AaronP
First the question. What is the latest version of GE? The precompiled binary is listed as 1.4, but if I want to submit a bug on sourceforge, I can submit it as being for version 2.0?

Excuse me for the stupid question, but I'm new and not familiar with all the minutia of software development.

Lastly the compiler error. Actually, there have already been a couple that have been really minor things that I've been able to fix myself, but this is a linker error and I don't know much about those.

Arch Linux i686
GCC version 4.6.2
Glib version 2.15-3
Code: Select all
gcc -m32       ../output//AboutDlg.o ../output//ActorProperty.o ../output//ActorText.o ../output//AddActionDialog.o ../output//AddActor.o ../output//AddPathDialog.o ../output//AddSequenceDialog.o ../output//BaseAction.o ../output//CDataFile.o ../output//ChangeAnimation.o ../output//ChangeAnimationDirection.o ../output//ChangeCursor.o ../output//ChangeParent.o ../output//ChangePath.o ../output//ColorPicker.o ../output//ConditionalAction.o ../output//Config.o ../output//CreateActor.o ../output//CreateTimer.o ../output//CreateVar.o ../output//DestroyActor.o ../output//DestroyTimer.o ../output//DlgActivationEvent.o ../output//DlgAnimationFinish.o ../output//DlgCollision.o ../output//DlgGeneralEvent.o ../output//DlgMouseButton.o ../output//DlgPocketPCKey.o ../output//DlgTimer.o ../output//EditSequenceDialog.o ../output//EnableDisable.o ../output//EventControl.o ../output//EventKeyDown.o ../output//ExportGame.o ../output//ExpressionEditor.o ../output//GameSettings.o ../output//GridSettings.o ../output//FunctionPanel.o ../output//jdiff.o ../output//LoadSave.o ../output//LoadSaveGame.o ../output//LoadSaveScript.o ../output//main.o ../output//MainPanel.o ../output//MoveTo.o ../output//NewTimer.o ../output//PathDialog.o ../output//PhysicalBounce.o ../output//PlaySong.o ../output//ScriptGlobals.o ../output//SDL_ttf.o ../output//SetTile.o ../output//SetTileSingle.o ../output//SetZDepth.o ../output//ToAnteriorPosition.o ../output//ToMousePosition.o ../output//Transparency.o ../output//Tutorial.o ../output//TutorialControlPanel.o ../output//TutorialPaint.o ../output//TutorialTextEditor.o ../output//TutorialTextPanel.o ../output//UndoControl.o ../output//VariableEditor.o ../output//WaitForFrame.o  -o "../output/gameEditorLinux" ../output/gameEngine/gameEngine.a ../output/SDL_mixer.a ../output/eic/eiclib.a ../output/engine/engine.a ../output/mikmod.a ../output/native_midi.a ../output/SDL_image.a ../output/jpeg.a ../output/libpng.a ../output/zlib.a ../output/freetype.a ../output/sdl.a -lstdc++ -lpthread -lX11 -lXext -I"../SDL/SDL_ttf/VisualC/FreeType/include" -I"../SDL/SDL_mixer" -I"../SDL/SDL/include" -I"../SDL/SDL_image" -I"../gameEngine"  -I"../kyra"  -I"../gameEngine/EiC/src" -D__linux -Dlinux -D__linux__ -DLINUX_I386    -DNO_STDIO_REDIRECT -DNO_LONG_LONG -DNO_DIRENT -DNO_FCNTL -DNO_STAT -DNO_UNISTD -DNO_TERMIOS -DNO_PIPE -DNO_POSIX -DNO_LONGLONG -DNO_HISTORY -s -Os  -DGAME_EDITOR_PROFESSIONAL
/usr/bin/ld: ../output/gameEngine/gameEngine.a(Action.o): undefined reference to symbol 'atan2@@GLIBC_2.0'
/usr/bin/ld: note: 'atan2@@GLIBC_2.0' is defined in DSO /lib/libm.so.6 so try adding it to the linker command line
/lib/libm.so.6: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[1]: *** ["../output/gameEditorLinux"] Error 1
make[1]: Leaving directory `/home/aaron/Game Editor/gameEditor'
make: *** [all] Error 2


I don't know all the details about how names are mangled during compilation, but atan2() is a function in math.h. atan2() appears a lot throughout the source, but perhaps it has something to do with /gameEngine/EiC/include/math.h? I'm not sure why you'd need to package std libraries with GE. :/

Re: Compile error. Version question.

PostPosted: Wed Jan 18, 2012 11:48 am
by makslane
The current version is the 1.4.0 (the 1.5 still in development).
I think there are some comflict in your system with the libm library.
Using the "-lm" switch may solve the problem.

Re: Compile error. Version question.

PostPosted: Wed Jan 18, 2012 9:00 pm
by AaronP
Builds but segfaults immediately. Imma build with GE_DEBUG and see if I can't figure it out.

EDIT:
Oh, I forgot to cp the res contents over. :oops:

Ok, I got it working. Any way I can help? I can make a small patch to get the build working. I got no other machine to test on, though.

Re: Compile error. Version question.

PostPosted: Thu Jan 19, 2012 2:37 pm
by makslane
Send me your makefiles

Re: Compile error. Version question.

PostPosted: Thu Jan 19, 2012 7:37 pm
by AaronP
I ran svn diff. I don't know if I did something wrong because there's also a bunch of lines that I didn't change. I don't have much experience yet with version control systems, sorry.

The makefile wasn't the only issue. You also need to replace two blank #elif's in kyra/engine/scrap.c with #else. The C preprosessor is another subject I don't know enough about, but the change is detailed here.

http://gcc.gnu.org/gcc-4.4/porting_to.html

So I'm packaging the patch and also the makefile as requested.

EDIT:
I notice the makefile in question is generated by dev-c++? Looking at things, the dev-c++ issue seems a bit complicated. It was unmaintained for a long, long time. Seems someone else has taken up the project, though, and made a bunch of bugfixes and shipped it with a recent gcc version.

https://sourceforge.net/projects/orwelldevcpp/

As alternatives, there is also wxdev-c++ and also Code::Blocks which has the advantage of working on windows, mac, linux, and freebsd.

Re: Compile error. Version question.

PostPosted: Fri Jan 20, 2012 10:43 am
by makslane
Thanks!

Re: Compile error. Version question.

PostPosted: Sat Jan 21, 2012 10:10 am
by AaronP
No problem. By the way, I tested out the patch by checking out a fresh copy of GE and running

Code: Select all
patch -p0 < lmakefix.patch


And the patch worked just fine. Don't know why that didn't occur to me before! Anyway, not sure how to do that in windows other than to download the windows version of patch and using the awful windows command line environment. :P You'd prolly also need to convert the .patch (which is just a text file) to dos format using a text editor like notepad++ or something.