Kompilierung unter Debian 3.1, gcc 3.3.6

Installationsprobleme, Anwendungsfragen und sonstige Schwierigkeiten

Moderator: Frustikus

Quix0r
Posts: 59
Joined: Sat Dec 15, 2007 10:05 am
Location: Krefeld, Germany
Contact:

Kompilierung unter Debian 3.1, gcc 3.3.6

Postby Quix0r » Sat Jan 19, 2008 6:48 pm

Hallo,

als erstes soll man ja sh ./autogen.sh unter Linux ausfuehren - ich habe den aktuellen trunk - was ich auch getan habe:

If you get errors, you may need newer versions of automake and autoconf.
You'll need at least automake 1.5 and autoconf 2.50.
/usr/share/aclocal/libmcrypt.m4:17: warning: underquoted definition of AM_PATH_LIBMCRYPT
/usr/share/aclocal/libmcrypt.m4:17: run info '(automake)Extending aclocal'
/usr/share/aclocal/libmcrypt.m4:17: or see http://sources.redhat.com/automake/auto ... ng-aclocal
2d/Makefile.am:22: `%'-style pattern rules are a GNU make extension
maths/Makefile.am:11: `%'-style pattern rules are a GNU make extension
texmap/Makefile.am:15: `%'-style pattern rules are a GNU make extension
Makefile.am:11: foreach subdir,${D2X_ARCH_SUBDIRS},arch/${subdir}/libarch_${subdir}.a: non-POSIX variable name
Makefile.am:11: (probably a GNU make extension)
Now you are ready to run ./configure


Danach habe ich einfach nur ./configure ausgefuehrt. Das Endergebnis:

d2x has been configured successfully.

Platform(s): linux ogl sdl
Features : no_asm network kalinix ipx OpenGL fasteventpoll release

Shared game data directory (unix only): ${prefix}/share/d2x-xl


Allerding schlug das Kompilieren der OpenGL-Dinge fehl:

gcc -DHAVE_CONFIG_H -I. -I.. -I ../include -I ../main -I ../arch/linux/include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -pipe -O3 -Wall -Wno-char-subscripts -MT fastmodels.o -MD -MP -MF .deps/fastmodels.Tpo -c -o fastmodels.o fastmodels.c
fastmodels.c: In function `G3GetOOFModelItems':
fastmodels.c:627: warning: dereferencing type-punned pointer will break strict-aliasing rules
fastmodels.c: In function `G3DrawSubModel':
fastmodels.c:1048: error: `glDrawRangeElements' undeclared (first use in this function)
fastmodels.c:1048: error: (Each undeclared identifier is reported only once
fastmodels.c:1048: error: for each function it appears in.)
fastmodels.c:1050: error: `glDrawRangeElements' used prior to declaration
fastmodels.c:1050: warning: implicit declaration of function `glDrawRangeElements'
make[2]: *** [fastmodels.o] Error 1
make[2]: Leaving directory `/home/quix0r/Download/d2x-xl/trunk/3d'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/quix0r/Download/d2x-xl/trunk'
make: *** [all] Error 2


Ich habe gelesen, dass man bei der OpenGL-Linux-API das Makro GL_GLEXT_PROTOTYPES definieren muss. Dieses hast du zwar in include/ogl_defs.h getan, aber dennoch erhalte ich diese Fehler? Ich glaube, GL/gl.h muss erneut included werden, nachdem man GL_GLEXT_PROTOTYPES und GLX_GLXEXT_PROTOTYPES definiert hat?

Alle anderen Verzeichnisse (ich bin reingewechselt mit z.B. cd main && make && cd - ) liessen sich fehlerfrei - aber mit Warnings - kompilieren.

Update: Okay, ich habe es herausbekommen!!! :D :D :D

In der ogl_defs.h steht ca. ab Zeile 178 folgendes:

Code: Select all

// vertex buffer objects -------------------------------------------------------

extern PFNGLGENBUFFERSPROC                        glGenBuffers;
extern PFNGLBINDBUFFERPROC                        glBindBuffer;
extern PFNGLBUFFERDATAPROC                        glBufferData;
extern PFNGLMAPBUFFERPROC                         glMapBuffer;
extern PFNGLUNMAPBUFFERPROC                  glUnmapBuffer;
extern PFNGLDELETEBUFFERSPROC                glDeleteBuffers;
//  ifdef _WIN32
extern PFNGLDRAWRANGEELEMENTSPROC       glDrawRangeElements;
//  endif


Hier musst du den Marko-ifdef-Block entfernen, dann kann ich prima unter Linux kompilieren. Ich denke, du solltest das mal bei dir unter Windows (hast es?) versuchen. :)

Wenn ich mein Solaris zum Laufen bekomme und OpenGL dazu, dann versuche ich es dort auch mal. :)

VG,
Quix0r

Edit: Irgentwie sieht alles Garbage aus? Die Untertitel im Intro-Video sind nur Striche und wenn ich ein neues Spiel starte oder meinen Spielstand lade, sieht alles sehr seltsam aus??? Leider kann ich keinen Screenshot anlegen, da sich D2 dann aufhaengt und mit "Memory Access Violation das Lofile flooded... :/

Edit #2: Hier ist mein debug-Logfile vom Kompilieren. Erzeugt habe ich es so:

Code: Select all

make clean
make all 2>d2x-debug.log
User avatar
karx11erx
D2X-XL Master
D2X-XL Master
Posts: 8112
Joined: Mon Sep 24, 2007 8:48 pm
Location: Wilferdingen, Germany
Contact:

Postby karx11erx » Sat Jan 19, 2008 7:31 pm

Zu dem Problem steht was im FAQ.
Quix0r
Posts: 59
Joined: Sat Dec 15, 2007 10:05 am
Location: Krefeld, Germany
Contact:

Postby Quix0r » Sat Jan 19, 2008 8:16 pm

Und welche meinst du? Ich finde das nicht.
User avatar
karx11erx
D2X-XL Master
D2X-XL Master
Posts: 8112
Joined: Mon Sep 24, 2007 8:48 pm
Location: Wilferdingen, Germany
Contact:

Postby karx11erx » Sat Jan 19, 2008 9:23 pm

Geh auf die D2X-Seite und sieh ins Seitenmenü!
Quix0r
Posts: 59
Joined: Sat Dec 15, 2007 10:05 am
Location: Krefeld, Germany
Contact:

Postby Quix0r » Sun Jan 20, 2008 1:27 am

Hmmm, nee das meine ich nicht. :) Es sieht halt nicht normal aus.

Dann noch ein anderer Bug. Nun habe ich mit der aelteren Version 1.11.88 gespielt, wenn ich den Spielstand aber mit dem aktuellen trunk lade, haengt sich D2 mit "Memory Access Violation" auf:

computing visibility of segment 383
flagging visible segments
flagging visible segments
flagging visible segments
flagging visible segments
flagging visible segments
flagging visible segments
Computing segment lights
computing nearest segment lights (-1)
Computing vertex lights
computing nearest vertex lights (-1)
Saving precompiled light data
Computing static lighting
rebuilding OpenGL texture data
rebuilding effects
Destroying cameras
Loading extra images
shutting down merged textures cache
building lightmap shader programs
building corona blending shader program
Memory access violation
Memory access violation
Memory access violation
[...]


Das mit computing visibility of segment xxx erhalte ich mit aufsteigener Nummber bis 383 halt. War vorher nicht!

Zudem haengt sich D2 (auch die aeltere Version) gerne nach der Punkteuebersicht auf (diese kommt, wenn du eine Level beendet hast und das naechste Robot-Briefing kommt).

Hoffe, ihr bekommst das hin. :)

Edit: Wenn ich ein neues Spiel starte (Descent2: Counter Strike), erhalte ich nun folgendes im Logfile:

computing visibility of segment 227
flagging visible segments
flagging visible segments
flagging visible segments
flagging visible segments
flagging visible segments
flagging visible segments
Computing segment lights
computing nearest segment lights (-1)
Computing vertex lights
computing nearest vertex lights (-1)
Saving precompiled light data
Computing static lighting
Loading extra images
Memory access violation
Memory access violation
Memory access violation
[...]
Last edited by Quix0r on Sun Jan 20, 2008 1:37 am, edited 1 time in total.
Quix0r
Posts: 59
Joined: Sat Dec 15, 2007 10:05 am
Location: Krefeld, Germany
Contact:

Postby Quix0r » Sun Jan 20, 2008 1:30 am

Wenn ich mit --enable-assembler ./configure aufrufe erhalte ich beim make-Befehl folgendes:

canvas.c: In function `GrSetColorRGB':
canvas.c:181: error: `color' undeclared (first use in this function)
canvas.c:181: error: (Each undeclared identifier is reported only once
canvas.c:181: error: for each function it appears in.)


Wozu ist der Parameter eigentlich dar?
Quix0r
Posts: 59
Joined: Sat Dec 15, 2007 10:05 am
Location: Krefeld, Germany
Contact:

Trunk 1060

Postby Quix0r » Sun Jan 20, 2008 12:47 pm

Der aktuelle trunk 1060 liefert dieses Debug-Logfile (make clean && make all 2>d2x-debug.log).

Nur so fuer dich als Rueckmeldung. :)

Edit: Nun erhalte ich beim Laden eines Spielstandes (die 1.1.88'er Version) bei "Prepare for Descent" einen Freeze und wieder "Memory access violation":

[...]
Loading level...
stopping music
stopping sounds
unloading textures
unloading custom sounds
unloading custom sounds
unloading hardware lights
unloading hires models
unloading cambot
unloading additional models
unloading extra poly models
unloading additional model textures
unloading extra bitmaps
unloading additional model textures
freeing sound buffers
freeing auxiliary poly model data
restoring default robot settings
Destroying camera objects
Destroying cameras
Destroying particle data
Destroying lightning data
Initializing smoke manager
loading level 'd2levf-2.rl2'
loading palette
loading level data
loading texture brightness info
Creating face list
loading level textures
Memory access violation
Memory access violation
Memory access violation
[...]
Quix0r
Posts: 59
Joined: Sat Dec 15, 2007 10:05 am
Location: Krefeld, Germany
Contact:

Postby Quix0r » Sun Jan 20, 2008 12:58 pm

An der selben Stelle haengt sich D2 mit selbiger Fehlermeldung auch auf, wenn ich ein neues Spiel starte.

Wenn du willst, kannst mich auch gerne als Alpha-Tester eintragen. :) Ich habe ja immer den neusten trunk.

Uebrigens: Wenn ich im Menue die Tastaturbelegung aendern will (du weisst wohl wo das geht?) Dann kann ich die Schrift dort nicht lesen, da es nur Striche sind. Gleiche Striche erhalte ich - wie bereits gesagt - in den Videos als Untertitel.

Und ich habe die Hires-Texturen installiert (alle).

Nein, ein Verschieben der Texturen - so dass er auf die alten Texturen zurueckfaellt - bringt das selbe Ergebnis.
User avatar
karx11erx
D2X-XL Master
D2X-XL Master
Posts: 8112
Joined: Mon Sep 24, 2007 8:48 pm
Location: Wilferdingen, Germany
Contact:

Postby karx11erx » Sun Jan 20, 2008 10:06 pm

Es gibt keine Alphas von D2X-XL. Du kannst aber gerne testen, und wenn Du Dich auskennst, dann mach einen Debug Build (./configure --enable-release=no --enable-debug=yes) und lass das Programm mal im Debugger laufen (z.B. DDD). Oder installier Dir Eclipse mit der C++-Workbench und debugge es bequem von dort.
Quix0r
Posts: 59
Joined: Sat Dec 15, 2007 10:05 am
Location: Krefeld, Germany
Contact:

Postby Quix0r » Mon Jan 21, 2008 8:49 pm

Okay, ich musste mein von Debian bereitgestelltes Eclipse komplett loeschen (apt-get --purge remove eclipse*) und das "Vanilla" runterladen, da Debian nur 3.2 hat und 3.3 wohl das aktuelle Stable ist. Die Debian-Leute sollten das mal "fixen". ;)

Bin dabei, es einzurichten (kann aber sehr wenig (GNU) C++ und doch mehr Java. :)

Hey, waere geil: Descent unter Java mit JOGL, OpenAL usw. coden :D gibt dazu Packages.

Jesent vielleicht?
User avatar
karx11erx
D2X-XL Master
D2X-XL Master
Posts: 8112
Joined: Mon Sep 24, 2007 8:48 pm
Location: Wilferdingen, Germany
Contact:

Postby karx11erx » Mon Jan 21, 2008 8:54 pm

Du musst Eclipse nur das Debug-Make als Projektdatei geben und kannst dann sehr bequem per Eclipse mit gdb debuggen. Mehr als festzustellen wo es knallt musst Du ja nicht unbedingt.
Quix0r
Posts: 59
Joined: Sat Dec 15, 2007 10:05 am
Location: Krefeld, Germany
Contact:

Postby Quix0r » Mon Jan 21, 2008 9:27 pm

Okay, das klingt einfach. :) Ich kann ja mal versuchen ein Ant-XML zu bauen, damit dies automatisiert wird.
User avatar
karx11erx
D2X-XL Master
D2X-XL Master
Posts: 8112
Joined: Mon Sep 24, 2007 8:48 pm
Location: Wilferdingen, Germany
Contact:

Postby karx11erx » Mon Jan 21, 2008 9:59 pm

In der Hilfe unter getting started findest Du übrigens eine Anleitung wie man ein bestehendes C-Projekt in Eclipse importiert.
Quix0r
Posts: 59
Joined: Sat Dec 15, 2007 10:05 am
Location: Krefeld, Germany
Contact:

Postby Quix0r » Mon Jan 21, 2008 10:16 pm

Ja, ich weiss. RTFM. ;)
User avatar
karx11erx
D2X-XL Master
D2X-XL Master
Posts: 8112
Joined: Mon Sep 24, 2007 8:48 pm
Location: Wilferdingen, Germany
Contact:

Postby karx11erx » Mon Jan 21, 2008 10:37 pm

Nee, die Anleitung ist gut, was will man mehr. ;)

Return to “D2X-XL Hilfe”

Who is online

Users browsing this forum: No registered users and 1 guest