PDA

View Full Version : collect2: ld returned 1 exit status



Cucus
23rd March 2011, 15:11
Hi,

It's the first time I use QtCreator for doing an application with openGL and Qt using windows 7. I've got some problems while I build my project:

I copy here my compile output error:

debug/moc_glwidget.o:C:\Users\Marcus\Desktop\test\Teste-build-desktop/debug/moc_glwidget.cpp:85: multiple definition of `glwidget::canviCostats(int)'

debug/glwidget.o:C:\Users\Marcus\Desktop\test\Teste-build-desktop/../Teste/glwidget.cpp:86: first defined here

debug/moc_glwidget.o:C:\Users\Marcus\Desktop\test\Teste-build-desktop/debug/moc_glwidget.cpp:92: multiple definition of `glwidget::canviRadi(double)'

debug/glwidget.o:C:\Users\Marcus\Desktop\test\Teste-build-desktop/../Teste/glwidget.cpp:95: first defined here

debug/glwidget.o:glwidget.cpp:(.text+0x38): undefined reference to `_imp___ZN9QGLWidgetC2EP7QWidgetPKS_6QFlagsIN2Qt10 WindowTypeEE'

debug/glwidget.o:glwidget.cpp:(.text+0x85): undefined reference to `_imp___ZN9QGLFormatC1E6QFlagsIN3QGL12FormatOption EEi'

debug/glwidget.o:glwidget.cpp:(.text+0x99): undefined reference to `_imp___ZN9QGLWidget9setFormatERK9QGLFormat'

debug/glwidget.o:glwidget.cpp:(.text+0xa6): undefined reference to `_imp___ZN9QGLFormatD1Ev'

debug/glwidget.o:glwidget.cpp:(.text+0xb9): undefined reference to `_imp___ZN9QGLFormatD1Ev'

debug/glwidget.o:glwidget.cpp:(.text+0xf7): undefined reference to `_imp___ZN9QGLWidgetD2Ev'

debug/glwidget.o:glwidget.cpp:(.text+0x142): undefined reference to `_imp___ZN9QGLWidgetC2EP7QWidgetPKS_6QFlagsIN2Qt10 WindowTypeEE'

debug/glwidget.o:glwidget.cpp:(.text+0x18f): undefined reference to `_imp___ZN9QGLFormatC1E6QFlagsIN3QGL12FormatOption EEi'

debug/glwidget.o:glwidget.cpp:(.text+0x1a3): undefined reference to `_imp___ZN9QGLWidget9setFormatERK9QGLFormat'

debug/glwidget.o:glwidget.cpp:(.text+0x1b0): undefined reference to `_imp___ZN9QGLFormatD1Ev'

debug/glwidget.o:glwidget.cpp:(.text+0x1c3): undefined reference to `_imp___ZN9QGLFormatD1Ev'

debug/glwidget.o:glwidget.cpp:(.text+0x201): undefined reference to `_imp___ZN9QGLWidgetD2Ev'

debug/glwidget.o:glwidget.cpp:(.text+0x222): undefined reference to `glShadeModel@4'

debug/glwidget.o:glwidget.cpp:(.text+0x24d): undefined reference to `glClearColor@16'

debug/glwidget.o:glwidget.cpp:(.text+0x266): undefined reference to `glClearDepth@8'

debug/glwidget.o:glwidget.cpp:(.text+0x275): undefined reference to `glEnable@4'

debug/glwidget.o:glwidget.cpp:(.text+0x284): undefined reference to `glDepthFunc@4'

debug/glwidget.o:glwidget.cpp:(.text+0x29b): undefined reference to `glHint@8'

debug/glwidget.o:glwidget.cpp:(.text+0x308): undefined reference to `glViewport@16'

debug/glwidget.o:glwidget.cpp:(.text+0x317): undefined reference to `glMatrixMode@4'

debug/glwidget.o:glwidget.cpp:(.text+0x31f): undefined reference to `glLoadIdentity@0'

debug/glwidget.o:glwidget.cpp:(.text+0x36b): undefined reference to `gluOrtho2D@32'

debug/glwidget.o:glwidget.cpp:(.text+0x46c): undefined reference to `gluOrtho2D@32'

debug/glwidget.o:glwidget.cpp:(.text+0x47b): undefined reference to `glMatrixMode@4'

debug/glwidget.o:glwidget.cpp:(.text+0x483): undefined reference to `glLoadIdentity@0'

debug/glwidget.o:glwidget.cpp:(.text+0x498): undefined reference to `glClear@4'

debug/glwidget.o:glwidget.cpp:(.text+0x4a0): undefined reference to `glLoadIdentity@0'

debug/glwidget.o:glwidget.cpp:(.text+0x4da): undefined reference to `glTranslated@24'

debug/glwidget.o:glwidget.cpp:(.text+0x4ea): undefined reference to `glLineWidth@4'

debug/glwidget.o:glwidget.cpp:(.text+0x50c): undefined reference to `glColor3f@12'

debug/glwidget.o:glwidget.cpp:(.text+0x51b): undefined reference to `glBegin@4'

debug/glwidget.o:glwidget.cpp:(.text+0x5ac): undefined reference to `glVertex2f@8'

debug/glwidget.o:glwidget.cpp:(.text+0x5cb): undefined reference to `glEnd@0'

debug/glwidget.o:glwidget.cpp:(.text+0x5d8): undefined reference to `glLineWidth@4'

debug/glwidget.o:glwidget.cpp:(.text+0x5fa): undefined reference to `glColor3f@12'

debug/glwidget.o:glwidget.cpp:(.text+0x609): undefined reference to `glBegin@4'

debug/glwidget.o:glwidget.cpp:(.text+0x69a): undefined reference to `glVertex2f@8'

debug/glwidget.o:glwidget.cpp:(.text+0x6b9): undefined reference to `glEnd@0'

debug/moc_glwidget.o:moc_glwidget.cpp:(.text+0x73): undefined reference to `_imp___ZN9QGLWidget11qt_metacastEPKc'

debug/moc_glwidget.o:moc_glwidget.cpp:(.text+0x9e): undefined reference to `_imp___ZN9QGLWidget11qt_metacallEN11QMetaObject4C allEiPPv'

debug/moc_glwidget.o:moc_glwidget.cpp:(.text+0x1a9): undefined reference to `_imp___ZN9QGLWidget16staticMetaObjectE'

debug/moc_glwidget.o:moc_glwidget.cpp:(.rdata$_ZTV8glwid get[vtable for glwidget]+0x1c): undefined reference to `QGLWidget::event(QEvent*)'

debug/moc_glwidget.o:moc_glwidget.cpp:(.rdata$_ZTV8glwid get[vtable for glwidget]+0x54): undefined reference to `QGLWidget::paintEngine() const'

debug/moc_glwidget.o:moc_glwidget.cpp:(.rdata$_ZTV8glwid get[vtable for glwidget]+0x84): undefined reference to `glwidget::paintEvent(QPaintEvent*)'

debug/moc_glwidget.o:moc_glwidget.cpp:(.rdata$_ZTV8glwid get[vtable for glwidget]+0x8c): undefined reference to `glwidget::resizeEvent(QResizeEvent*)'

debug/moc_glwidget.o:moc_glwidget.cpp:(.rdata$_ZTV8glwid get[vtable for glwidget]+0xe8): undefined reference to `QGLWidget::updateGL()'

debug/moc_glwidget.o:moc_glwidget.cpp:(.rdata$_ZTV8glwid get[vtable for glwidget]+0xec): undefined reference to `glwidget::updateOverlayGL()'

debug/moc_glwidget.o:moc_glwidget.cpp:(.rdata$_ZTV8glwid get[vtable for glwidget]+0xfc): undefined reference to `glwidget::initializeOverlayGL()'

debug/moc_glwidget.o:moc_glwidget.cpp:(.rdata$_ZTV8glwid get[vtable for glwidget]+0x100): undefined reference to `glwidget::resizeOverlayGL(int, int)'

debug/moc_glwidget.o:moc_glwidget.cpp:(.rdata$_ZTV8glwid get[vtable for glwidget]+0x104): undefined reference to `glwidget::paintOverlayGL()'

debug/moc_glwidget.o:moc_glwidget.cpp:(.rdata$_ZTV8glwid get[vtable for glwidget]+0x108): undefined reference to `glwidget::glInit()'

debug/moc_glwidget.o:moc_glwidget.cpp:(.rdata$_ZTV8glwid get[vtable for glwidget]+0x10c): undefined reference to `glwidget::glDraw()'

debug/moc_glwidget.o:moc_glwidget.cpp:(.rdata$_ZTV8glwid get[vtable for glwidget]+0x124): undefined reference to `non-virtual thunk to QGLWidget::paintEngine() const'

debug/moc_glwidget.o:moc_glwidget.cpp:(.text$_ZN8glwidge tD1Ev[glwidget::~glwidget()]+0x20): undefined reference to `_imp___ZN9QGLWidgetD2Ev'

debug/moc_glwidget.o:moc_glwidget.cpp:(.text$_ZN8glwidge tD0Ev[glwidget::~glwidget()]+0x20): undefined reference to `_imp___ZN9QGLWidgetD2Ev'

collect2: ld returned 1 exit status

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

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

The process "C:/Qt/2010.05/mingw/bin/mingw32-make.exe" exited with code %2.
Error while building project Teste (target: Desktop)
When executing build step 'Make'

my .pro:

#-------------------------------------------------
#
# Project created by QtCreator 2011-03-22T23:49:11
#
#-------------------------------------------------

QT += core gui
QT += webkit

TARGET = Teste
TEMPLATE = app


SOURCES += main.cpp\
menuprincipal.cpp \
glwidget.cpp

HEADERS += menuprincipal.h \
glwidget.h

FORMS += menuprincipal.ui


and my .h

glwidget

#ifndef GLWIDGET_H
#define GLWIDGET_H

#include <QtOpenGL/QGLWidget>

class glwidget : public QGLWidget
{
Q_OBJECT
public:
explicit glwidget(QWidget *parent = 0);

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

signals:
void canviCostats(int c);
void canviRadi(double r);
private:
int costats;
double radi;

public slots:

};

#endif // GLWIDGET_H


menuprincipal

#ifndef MENUPRINCIPAL_H
#define MENUPRINCIPAL_H

#include <QWidget>

namespace Ui {
class MenuPrincipal;
}

class MenuPrincipal : public QWidget
{
Q_OBJECT

public:
explicit MenuPrincipal(QWidget *parent = 0);
~MenuPrincipal();

private:
Ui::MenuPrincipal *ui;
};

#endif // MENUPRINCIPAL_H


I check some post in this forum and others and I don't find the solution :S.
Thanks for help!

mcosta
23rd March 2011, 15:24
Add opengl to your pro file


#-------------------------------------------------
#
# Project created by QtCreator 2011-03-22T23:49:11
#
#-------------------------------------------------

QT += core gui opengl
QT += webkit

TARGET = Teste
TEMPLATE = app


SOURCES += main.cpp\
menuprincipal.cpp \
glwidget.cpp

HEADERS += menuprincipal.h \
glwidget.h

FORMS += menuprincipal.ui

Cucus
23rd March 2011, 15:45
It has been solved, thx!