Qt spricht nicht OpenGL

Verschiedenes zu Qt
Gesperrt
MadsMaus
Beiträge: 12
Registriert: 18. Mai 2006 12:50
Kontaktdaten:

Qt spricht nicht OpenGL

Beitrag von MadsMaus »

Hallo,

ich versuche auf meinem Laptop QT mit OpenGL-Unterstützung zu installieren und stoße sowohl unter Linux, als auch unter Windows auf einige Probleme. Alle bisherigen Tipps aus anderen Beiträgen, haben noch nicht geholfen das irgendwie zum Laufen zu kriegen.

Unter Windows kommt es mir so vor, als ob er dort gar nichts findet, da er nicht mal die Datentypen von OpenGL kennt.

Unter Linux krieg ich eine Fehlermeldung, dass er -lXext nicht finden kann, obwohl alle sourcen installiert sind und ich die entsprechenden Informationen beim Konfigurieren übergebe.

Irgendeiner eine Vorstellung, was ich noch probieren könnte, dass es zumindest unter einem Betriebssystem läuft? Bin für Hilfe sehr dankbar :)


Hier die genaue Fehlermeldung unter Windows:
g++ -c -g -g -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"C:/Qt/4.1.2/include/QtCore" -I"C:/Qt/4.1.2/include/QtGui" -I"C:/Qt/4.1.2/include" -I"C:/Qt/4.1.2/include/ActiveQt" -I"debug" -I"." -I"C:/Qt/4.1.2/mkspecs/default" -o debug\glwidget.o glwidget.cpp
glwidget.cpp:25:24: QtOpenGL: No such file or directory
In file included from glwidget.cpp:29:
glwidget.h:27:25: QGLWidget: No such file or directory
In file included from glwidget.cpp:29:
glwidget.h:30: error: invalid use of undefined type `struct QGLWidget'
C:/Qt/4.1.2/include/QtGui/../../src/gui/image/qpixmap.h:205: error: forward declaration of `struct QGLWidget'
glwidget.h:61: error: `GLuint' does not name a type
glwidget.h:62: error: variable or field `quad' declared void
glwidget.h:62: error: expected `;' before '(' token
glwidget.h:64: error: variable or field `extrude' declared void
glwidget.h:64: error: expected `;' before '(' token
[...]
glwidget.cpp:211: error: `GLdouble' was not declared in this scope
glwidget.cpp:212: error: initializer expression list treated as compound expression
glwidget.cpp:212: error: expected `,' or `;' before '{' token
glwidget.cpp:227:6: warning: no newline at end of file
mingw32-make[1]: *** [debug\glwidget.o] Error 1
mingw32-make[1]: Leaving directory `G:/programmierung/qt'
mingw32-make: *** [debug] Error 2
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

Hallo,

ich habe das Problem auch unter Qt/Mac. Leider gibt die Installationsanweisung nicht genug heraus. Wo steht, was ich wie linken muss?
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

-lXext fehlt, das ist klar und eindeutig. die Datei libXext.so oder libXext.a fehlt. Such mal in den Paketen deiner Distribution.

Bei Windows hast du vergessen OpenGL von Qt zu definieren in der pro Datei

QT += opengl

Ich nehme an, das wird deine Probleme komplett lösen.
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

FlorianBecker hat geschrieben:QT += opengl
Danke, genau das fehlte bei mir.
Sphinx
Beiträge: 7
Registriert: 6. April 2006 15:14

Beitrag von Sphinx »

Ich habe das selbe Problem wie MadsMaus unter Windows allerdings unter linux (ubuntu dapper drake 6.06) Ich versuche, das hellogl Beispiel zu qt4 zu compilieren: Die Fehlermeldung sieht so aus:

hellogl$ make
g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I/usr/X11R6/include -I. -I. -o glwidget.o glwidget.cpp
glwidget.cpp:25:24: Fehler: QtOpenGL: No such file or directory
In Datei, eingefügt von glwidget.cpp:29:
glwidget.h:27:25: Fehler: QGLWidget: No such file or directory
glwidget.h:30: Fehler: expected class-name before »{« token
[usw]

Kann mir jemand sagen, ob ich qt4 selbst compilieren muss, damit openglsupport vorhanden ist, oder was ich noch installieren muss, damit es tut? Die QtOpenGL Dateien sind jedenfalls im include Ordner vorhanden, und das Compilieren von nicht opengl Programmen funktioniert auch. Kann mir jemand sagen, woran es liegt? Danke schonmal
KravenZ
Beiträge: 26
Registriert: 14. November 2006 16:33

Beitrag von KravenZ »

Hi Leute,

Hab mal wieder ien Probelm und zwar folgendes. Ich habe eine QT Anwendung erstellt und ein OpenGl Widget reingepackt. nur wollte ich OpenGL Funktionen benutzen aber ich erhalte immer die Fehlermeldung... undefined reference ...

Hier ist meine Widgetklasse:

Code: Alles auswählen

#ifndef _OGL_WIDGET_H_
#define _OGL_WIDGET_H_
#include <qgl.h>

namespace SWP0607 {


class OGLWidget : public QGLWidget
{
    	Q_OBJECT
    

public:
    	//! Default constructor
    	OGLWidget( QWidget* parent = 0, const char* name = 0 );

    	//! Destructor
    	~OGLWidget(); 

protected:
	void initializeGL();
	void resizeGL(int w, int h);
	void paintGL();

private:
	
};

}

#endif 

Code: Alles auswählen

#include <GL/gl.h>
//#include <GL/glu.h>
//#include <GL/glx.h>
//#include <GL/glaux.h>
#include "OGLWidget.hh"


namespace SWP0607 {

OGLWidget::OGLWidget( QWidget* parent, const char* name )
    : QGLWidget( parent, name )
{

}


OGLWidget::~OGLWidget()
{

}

void OGLWidget::initializeGL()
{
         glClearColor(0.0f, 0.0f, 0.0f, 0.0f); 
}

void OGLWidget::resizeGL(int w, int h)
{

}

void OGLWidget::paintGL()
{

}

}
 
Ich denke mal dass ich irgendeine Library linken muss oder?
Nur leider habe ich keine genaue Ahnung welche und was ich noch weinger weiss ist wie man mit qmake Librarys linken kann. Dachte erstmal, dass es fast alles automatisch macht aber dem ist anscheinend nicht so. Auf der Trolltech seite wurde ich auch nicht fündig. Da stand auch etwas davon dass QT OpenGl automatisch erkennt hmm...
Weisst vielleicht einer wie das geht?
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

Kannst Du die Fehlermeldung mal posten?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Und vor allem - warum wird nicht ein neuer Thread geöffnet anstatt einen 4 Monaten alten Thread zu hijacken? :twisted:

-> closed !
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Gesperrt