Superuser

Autor Thema: Frage zum Kompilieren (zB BillardGL)  (Gelesen 6408 mal)

faxxe

  • Gast
Frage zum Kompilieren (zB BillardGL)
« am: 09. März 2004, 20:15:37 »
Gruss an die Rund!


Leider blicke ich beim Kompilieren grundsaetzlich nicht ganz durch.
Ich moechte jetzt mal das Spiel BillardGL versuchen. Ich habe den Quellcode (Tarball) gesaugt und in ein Verzeichnis entpackt. Darin gibt es einen File "Makefile". Muesste es nicht auch einen ./config - File geben? Make brauche ich ja auchmal.

Sorry; aber mir fehlt es hier wirklich am Basiswissen. Gibts eine Art howto zu diesem Thema bzw eine Anleitung?

Vielen Dank
faxxe
???
« Letzte Änderung: 09. März 2004, 20:16:01 von faxxe »

mood-indigo.org - Das unabhängige Silicon Graphics User Forum

Frage zum Kompilieren (zB BillardGL)
« am: 09. März 2004, 20:15:37 »

tg_it

  • Gast
Re: Frage zum Kompilieren (zB BillardGL)
« Antwort #1 am: 09. März 2004, 22:24:35 »
Hi,

ich hab mir mal die Source geladen und kurz drauf gesehen. Es ist kein configure vorhanden, sondern nur das Makefile. Das muss für Irix angepasst werden. Im Makefile unter ####### Compiler, tools and options hätte ich diese Optionen eingetragen:

CC      =      gcc
CXX      =      g++
CFLAGS      =      -mips3 -O2 -I/usr/include
CXXFLAGS=      -mips3 -O2 -I/usr/include
INCPATH      =      -I/usr/include
LINK      =      g++
LFLAGS      =      
LIBS      =      -L/usr/lib32 -L/usr/freeware/lib32 -lGL -lGLU -lglut -lXmu -lXext -lX11 -lm -lXi

danach noch ein gmake machen und kontrollieren wer meckert. ;)

Ein kurzes howto gibts hier: http://freeware.sgi.com/howto.html

Bye
Thomas

faxxe

  • Gast
Re: Frage zum Kompilieren (zB BillardGL)
« Antwort #2 am: 16. März 2004, 23:32:59 »
Zitat


LIBS      =      -L/usr/lib32 -L/usr/freeware/lib32 -lGL -lGLU -lglut -lXmu -lXext -lX11 -lm -lXi

Hallo!
Von oben ist mir alles klar; aber was bedeuten diese angaben? -lGL -lGLU etc. ? Sind das auch Pfade?

Zitat

danach noch ein gmake machen und kontrollieren wer meckert. ;)

Er meckert gleich was von einer GL/glut.h, die es nicht gibt. Ich finde eine glut.h. Auch mysterioes.

Eventuell kannst Du mir noch mal helfen.
Dank & Gruss
faxxe

MachtDesWissens

  • Gast
Re: Frage zum Kompilieren (zB BillardGL)
« Antwort #3 am: 17. März 2004, 00:03:54 »
Hallo

Zitat

Von oben ist mir alles klar; aber was bedeuten diese angaben? -lGL -lGLU etc. ? Sind das auch Pfade?


Compiler Optionen bzw Flags

Zitat
Er meckert gleich was von einer GL/glut.h, die es nicht gibt. Ich finde eine glut.h. Auch mysterioes.


Nicht unbedingt: Kann eine falsche Version sein oder ein falscher Link oder Pfad. Wo sucht er denn die Datei, kannst Du sie manuell adressieren?

so long
MDW

jobeh

  • Gast
Re: Frage zum Kompilieren (zB BillardGL)
« Antwort #4 am: 17. März 2004, 03:24:39 »

Zitat

Hallo


Compiler Optionen bzw Flags


Nicht unbedingt: Kann eine falsche Version sein oder ein falscher Link oder Pfad. Wo sucht er denn die Datei, kannst Du sie manuell adressieren?

so long
MDW


Es ist die Anweisung gegen libGL und libGLU zulinken.

Der fehlende Header kommt aus dem Freeware Paket
[[origin]:~ $ versions long | grep include | grep /glut.h
f 62485    41 fw_glut.sw.hdr          usr/freeware/include/GL/glut.h

Gruss
Joerg

faxxe

  • Gast
Re: Frage zum Kompilieren (zB BillardGL)
« Antwort #5 am: 17. März 2004, 12:12:53 »
Zitat



Es ist die Anweisung gegen libGL und libGLU zulinken.

Der fehlende Header kommt aus dem Freeware Paket
[[origin]:~ $ versions long | grep include | grep /glut.h
f 62485    41 fw_glut.sw.hdr          usr/freeware/include/GL/glut.h



Super:Danke - das Paket hat wirklich gefehlt. Damit startet
./gmake zumindest schon mal. Nach einigen Minuten bricht er aber wieder ab und meldet :

ld32: WARNING 84: /usr/lib32/libGL.so is not used for resolving any link
ld32: WARNING 84: /usr/lib32/libXmu.so is not used for resolving any link
ld32: WARNING 84: /usr/lib32/libXi.so is not used for resolving any link

Sagt Euch das was? Noch eine fehlende Libary?

Gruss
faxxe

majix

  • Gast
Re: Frage zum Kompilieren (zB BillardGL)
« Antwort #6 am: 17. März 2004, 13:09:54 »
Naja, es sind ja nur Warnings, das ist nicht schlimm. Hast Du mal nachgesehen, ob vielleicht das fertig gebaute Executable da ist?

Grüße,
Kaya

jobeh

  • Gast
Re: Frage zum Kompilieren (zB BillardGL)
« Antwort #7 am: 17. März 2004, 19:48:21 »

Zitat

Naja, es sind ja nur Warnings, das ist nicht schlimm. Hast Du mal nachgesehen, ob vielleicht das fertig gebaute Executable da ist?

Grüße,
Kaya


Bei mir faellt mittlerweile ein Binary heraus. Dumm nur das er trotz Angabe des Installationsortes die Pfade zu den Texturen hardverdrahtet hat. make install kopiert bei mir somit die Sachen an den falschen Ort :/

Starten tuts (Fullscreen) bleibt dann aber stehen und man kann an der Konsole sehen 'No Game Mode possible' Laut readme kann man es ueber eine Config anpassen. Aber meine Motivation sinkt mittlerweile unter den Gefrierpunkt...

Gruss
Joerg

joebeh

  • Gast
Re: Frage zum Kompilieren (zB BillardGL)
« Antwort #8 am: 17. März 2004, 20:20:13 »
So... ich vergesse immer wieder wie alt und langsam die kisten sind....

Nach dem ich rum gegoogelt habe wurde erwaehnt das
die Startparameter  "-t 8 -at 2 -tt 0 -g 3" helfen koennten.  OB sie helfen weis ich nicht... aber nach 3min Wartezeit bin ich ueber den Startscreen heraus und sehen nun einen rotierenden Billardtisch (der sieht gut aus). Rotiert mit 1frame/sek.

Also ohne Texturspeicher wird das wohl nix... und davon hat meine Octane leider zuwenig. Eventuell hilt es in einem Fenster mit kl. Aufloesung zu spielen.

Gruss
Joerg

faxxe

  • Gast
Re: Frage zum Kompilieren (zB BillardGL)
« Antwort #9 am: 18. März 2004, 01:44:25 »
Zitat


ld32: WARNING 84: /usr/lib32/libGL.so is not used for resolving any link
ld32: WARNING 84: /usr/lib32/libXmu.so is not used for resolving any link
ld32: WARNING 84: /usr/lib32/libXi.so is not used for resolving any link


Da haengt noch was an Fehlermeldungen dran (er bricht bei BillardGL.o ab)
unter den oben gezeigten Zeilen steht noch :
ld32: Error 33: Unresolved text symbol "glutSwapBuffers"-- 1st referenced by BillardGL.o

Dieser Wortlaut wiederholt sich ca 20X mit verschiedenen Namen in der Klammer (aber alle beginnen mit glut********)

Am Schluss steht dann
"Outputfile removed because of error"

Habt ihr wieder einen Tipp?

Danke fuer die Geduld
faxxe

jobeh

  • Gast
Re: Frage zum Kompilieren (zB BillardGL)
« Antwort #10 am: 18. März 2004, 12:59:46 »

Zitat


Da haengt noch was an Fehlermeldungen dran (er bricht bei BillardGL.o ab)
unter den oben gezeigten Zeilen steht noch :
ld32: Error 33: Unresolved text symbol "glutSwapBuffers"-- 1st referenced by BillardGL.o


Die Reihenfolge der Libs ist nicht ok. Der IRIX ld als single pass linker ist da sehr Anspruchsvoll.

Mache ein 'gmake clean' und aendere im Makefile folgendes.

INCPATH =       -I/usr/freeware/include -I/usr/include/X11
LINK    =       g++
LFLAGS  =
LIBS    =       -L/usr/freeware/lib32 -L/usr/lib32 -lglut -lGLU -lX11  -lGL   -lXmu -lXext -lX11 -lm -lXi

dann 'gmake' und er sollte durch laufen. Dann mit 'gmake install' das Programm installieren. Hier brauchts dann Rootrechte oder du hast im Makefile und abgeaendert wohin installiert wird.

Gruss
Joerg

Offline sgt_barnes

  • Mood Master
  • ****
  • Beiträge: 250
  • Der frühe Vogel fängt den Wurm, aber die zweite Maus kriegt den Käse!
    • Profil anzeigen
Re: Frage zum Kompilieren (zB BillardGL)
« Antwort #11 am: 18. März 2004, 13:04:29 »
Oft liegen solche Sachen an der Reihenfolge, in der die Bibliotheken gelinkt erden.

Probier mal, die -l... (mit kleinem "L") zu verdrehen, besonders die, die irgendwas mit OpenGL zu tun haben.

Z.B. statt "-lGL -lGLU -lglut" schreibe "-lglut -lGLU -lGL". Meistens hilft das.

Ich kann mir auch nie merken, welche Bibliotheken jetzt zuerst kommen müssen, und ich bin immerhin Informatiker (was eigentlich dazu ja nix aussagt, aber ich verdiene mein Geld mit sowas). Ist irgendwie jedesmal wieder "trial-and-error".  ;)

MfG,
Tilmann

faxxe

  • Gast
Re: Frage zum Kompilieren (zB BillardGL)
« Antwort #12 am: 18. März 2004, 23:29:47 »
Bier trinken ist angesagt! Es laeuft! Es waren die Angaben von joerg,die geholfen haben!

Meine abschliessenden Fragen:
1) Wem werden die Optionen in LIBS wie -lglut etc uebergeben? gcc?
2) Wie habt Ihr bzw wie ist es im Allgemeinen moeglich, die Pfade bzw die Reihenfolge der Optionsschalter zu erkennen? Ich finde aus dem Inhalt des makefiles nich wirklich einen Zusammenhang zu den Optionsschaltern
3) Verweist man einfach auf alle Libarys? Was waere, wenn einProgramm mal nicht OpenGL braucht. Kann man die Optionschalter zu GL einfach weg lassen oder werden die durch irgendwas ersetzt?
4) Wer kennt eine Frau fuer mich?

Spass beiseite; das Programm laeuft und macht erst Neugierig auf die Geheimnisse von gcc + g++  und deren Optionen................................

Gruss & tiefe Verneigung
faxxe



;D

Offline sgt_barnes

  • Mood Master
  • ****
  • Beiträge: 250
  • Der frühe Vogel fängt den Wurm, aber die zweite Maus kriegt den Käse!
    • Profil anzeigen
Re: Frage zum Kompilieren (zB BillardGL)
« Antwort #13 am: 19. März 2004, 13:00:51 »
zu 1) Die -L... und -l... flags werden von gcc an den Linker weitergegeben. Der weiss dann, welche Bibliotheken er linken muss und wo sie zu finden sind.

zu 2) Mit -L/usr/freeware/lib32 wird dem Linker gesagt, dass er auch in diesem Verzeichnis nach Bibliotheken zu suchen hat. Die können ja im Prinzip überall rumliegen. Mit -lX11 weisst man den Linker an, die Bibliothek "libX11.a" oder "libX11.so" mit in das fertige Programm einzubauen.
Das die Reihenfolge nicht stimmt, sieht man an der Meldung "...not used for resolving any link" und danach "Unresolved text symbol". Verdächtig wird sowas, wenn er erst sagt, dass die Biliothek xy unnötig ist und nachher quengelt, dass er nix aus dieser Bibliothek finden kann.

zu 3) In der Regel lässt der Linker sowieso alles weg, was Du nicht brauchst (deshalb ja das Problem mit der Reihenfolge), aber natürlich kannst Du das -lGL in dem Fall auch weglassen.

zu 4) RTFM! ;-)

MfG,
Tilmann