[gelöst] [QGl ] Opengl wird nicht gelinkt mit gmake

Alles rund um die Programmierung mit Qt
Antworten
PhilippM
Beiträge: 41
Registriert: 11. Dezember 2005 14:02
Wohnort: Darmstadt
Kontaktdaten:

[gelöst] [QGl ] Opengl wird nicht gelinkt mit gmake

Beitrag von PhilippM »

Hallo,

ich bin von Madriva auf Aurox Linux umgestiegen.

Unter Mandriva ließ sich das Beispiel von der cd aus dem ofiziellen qt-handbuch zum Thema OpenGl, der Würfel, korrket kompilieren und linken.

Unter Aurox erhalte ich beim Linken folgende Fehlermeldung:

Code: Alles auswählen

Linken der Datei cube (g++)
cube.o(.text+0x174): In function `Cube::initializeGL()':
/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:23: undefined reference to `glShadeModel'
cube.o(.text+0x180):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:24: undefined reference to `glEnable'
cube.o(.text+0x1b8): In function `Cube::resizeGL(int, int)':
/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:30: undefined reference to `glViewport'
cube.o(.text+0x1c4):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:31: undefined reference to `glMatrixMode'
cube.o(.text+0x1c9):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:32: undefined reference to `glLoadIdentity'
cube.o(.text+0x224):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:34: undefined reference to `glFrustum'
cube.o(.text+0x24b): In function `Cube::draw()':
/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:61: undefined reference to `glMatrixMode'
cube.o(.text+0x250):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:62: undefined reference to `glLoadIdentity'
cube.o(.text+0x266):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:63: undefined reference to `glTranslatef'
cube.o(.text+0x288):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:64: undefined reference to `glRotatef'
cube.o(.text+0x2a5):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:65: undefined reference to `glRotatef'
cube.o(.text+0x2c2):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:66: undefined reference to `glRotatef'
cube.o(.text+0x2fb):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:69: undefined reference to `glLoadName'
cube.o(.text+0x307):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:70: undefined reference to `glBegin'
cube.o(.text+0x354):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:74: undefined reference to `glVertex3f'
cube.o(.text+0x364):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:76: undefined reference to `glEnd'
cube.o(.text+0x3a4): In function `Cube::paintGL()':
/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:40: undefined reference to `glClear'
cube.o(.text+0x547): In function `Cube::faceAtPosition(QPoint const&)':
/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:121: undefined reference to `glGetIntegerv'
cube.o(.text+0x55d):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:122: undefined reference to `glSelectBuffer'
cube.o(.text+0x569):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:123: undefined reference to `glRenderMode'
cube.o(.text+0x56e):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:125: undefined reference to `glInitNames'
cube.o(.text+0x57a):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:126: undefined reference to `glPushName'
cube.o(.text+0x586):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:128: undefined reference to `glMatrixMode'
cube.o(.text+0x58b):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:129: undefined reference to `glPushMatrix'
cube.o(.text+0x590):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:130: undefined reference to `glLoadIdentity'
cube.o(.text+0x5bd):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:133: undefined reference to `gluPickMatrix'
cube.o(.text+0x62d):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:135: undefined reference to `glFrustum'
cube.o(.text+0x641):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:137: undefined reference to `glMatrixMode'
cube.o(.text+0x646):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:138: undefined reference to `glPopMatrix'
cube.o(.text+0x652):/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:140: undefined reference to `glRenderMode'
cube.o(.text+0x18d): In function `Cube::initializeGL()':
/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:25: undefined reference to `glEnable'
cube.o(.text+0x236): In function `Cube::resizeGL(int, int)':
/home/philipp1/cpp-projects/qt/examples/chap08/cube/cube.cpp:35: undefined reference to `glMatrixMode'
collect2: ld gab 1 als Ende-Status zurück
gmake: *** [cube] Fehler 1
gmake: Das Target »first« wurde wegen Fehlern nicht aktualisiert.
Dazu ist zusagen: Mesalib ist installiert nach /usr/include/GL/ , die Datei qgl.h liegt unter /usr/lib/qt-3.3/include .

Das unter mandriva kompilierte Beispiel lässt sich problemlos ausführen.

Wäre nett, wenn ihr mir helfen könntet, den Fehler zu lokalisieren.
Danke
Zuletzt geändert von PhilippM am 10. Juli 2008 12:33, insgesamt 1-mal geändert.
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Wenn es am header liegen würde, dann würde der compilerlauf gar nicht bis zum linken kommen. schau mal beim aufruf, ob gegen die openGL libs überhaupt gelinkt wird.
PhilippM
Beiträge: 41
Registriert: 11. Dezember 2005 14:02
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von PhilippM »

Danke, das war's.

Man muss im QMake Manager die Linker-Option OpenGL anklicken. War beim alten Kdevelop nicht so.
Wieder was gelernt!
Antworten