2 votes

: : error : collect2 : ld returned 1 exit status with QT and opengl

J'essaie d'utiliser un QGLWidget dans une application QT, et j'ai ajouté la ligne "QT += opengl" dans le fichier .pro mais j'obtiens maintenant : : error : collect2 : ld returned 1 exit status lorsque j'essaie de compiler mon programme.

la sortie de la compilation montre ce qui suit,

Running build steps for project MapEditor...
Configuration unchanged, skipping qmake step.
Starting: "C:/Qt/2010.05/mingw/bin/mingw32-make.exe" -w
mingw32-make: Entering directory `C:/Qt/2010.05/MapEditor-build-desktop'

C:/Qt/2010.05/mingw/bin/mingw32-make -f Makefile.Debug

mingw32-make[1]: Entering directory `C:/Qt/2010.05/MapEditor-build-desktop'

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\MapEditor.exe debug/Main.o debug/window.o debug/glwidget.o debug/moc_window.o debug/moc_glwidget.o  -L"c:\Qt\2010.05\qt\lib" -lglu32 -lopengl32 -lgdi32 -luser32 -lmingw32 -lqtmaind -lQtOpenGLd4 -lQtGuid4 -lQtCored4 

mingw32-make[1]: Leaving directory `C:/Qt/2010.05/MapEditor-build-desktop'

mingw32-make: Leaving directory `C:/Qt/2010.05/MapEditor-build-desktop'

debug/moc_glwidget.o:moc_glwidget.cpp:(.rdata$_ZTV8GLWidget[vtable for GLWidget]+0x14): undefined reference to `GLWidget::~GLWidget()'

debug/moc_glwidget.o:moc_glwidget.cpp:(.rdata$_ZTV8GLWidget[vtable for GLWidget]+0x18): undefined reference to `GLWidget::~GLWidget()'

debug/moc_glwidget.o:moc_glwidget.cpp:(.rdata$_ZTV8GLWidget[vtable for GLWidget]+0x118): undefined reference to `non-virtual thunk to GLWidget::~GLWidget()'

debug/moc_glwidget.o:moc_glwidget.cpp:(.rdata$_ZTV8GLWidget[vtable for GLWidget]+0x11c): undefined reference to `non-virtual thunk to GLWidget::~GLWidget()'

collect2: ld returned 1 exit status

mingw32-make[1]: *** [debug\MapEditor.exe] Error 1

mingw32-make: *** [debug] Error 2

Le processus "C:/Qt/2010.05/mingw/bin/mingw32-make.exe" s'est terminé avec le code %2. Erreur lors de la construction du projet MapEditor (target : Desktop) Lors de l'exécution de l'étape de construction 'Make'

et mon fichier .pro contient ce qui suit,

TARGET = MapEditor
TEMPLATE =app

QT += opengl

SOURCES += \
    Main.cpp \
    window.cpp \
    glwidget.cpp

HEADERS += \
    window.h \
    glwidget.h

0voto

this.lau_ Points 23290

Il semble qu'un fichier soit manquant. Avez-vous ajouté ce fichier à votre en-tête ?

 #include <QtOpenGL>

0voto

hurricane Points 41

Vérifiez que vous avez bien ajouté tous les fichiers de classe et d'en-tête dans les balises SOURCES et HEADERS (pour cela, exécutez la commande qmake à partir des options de la barre de menus de construction). Vérifiez également que vous avez déclaré la macro Q_OBJECT au début de votre classe glwidget.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X