ich muss heute mein erstes Programm mit C++ und QT schreiben. Nach dem Kompilieren meines Programms (eine main.cpp, und eine Klasse, aufgeteilt in eine .h und eine .cpp Datei) bekomme ich diese Fehler vom Linker:
Code: Alles auswählen
wndNetwork.cpp:22: undefined reference to `_imp___ZN12QHostAddressC1ENS_14SpecialAddressE'
wndNetwork.o(.text+0x19f):wndNetwork.cpp:22: undefined reference to `_imp___ZN10QUdpSocket4bindERK12QHostAddresst'
wndNetwork.o(.text+0x1c4):wndNetwork.cpp:22: undefined reference to `_imp___ZN12QHostAddressD1Ev'
wndNetwork.o(.text+0x1f0):wndNetwork.cpp:22: undefined reference to `_imp___ZN12QHostAddressD1Ev'
wndNetwork.o(.text+0x2b7): In function `ZN10wndNetworkC2Ev':
wndNetwork.cpp:43: undefined reference to `_imp___ZN10QUdpSocketC1EP7QObject'
wndNetwork.o(.text+0x2d6):wndNetwork.cpp:43: undefined reference to `_imp___ZN10QUdpSocketC1EP7QObject'
wndNetwork.o(.text+0xb1f):wndNetwork.cpp:65: undefined reference to `QUdpSocket::~QUdpSocket()'
wndNetwork.o(.text+0xb46):wndNetwork.cpp:65: undefined reference to `QUdpSocket::~QUdpSocket()'
wndNetwork.o(.text+0xc37): In function `ZN10wndNetworkC1Ev':
wndNetwork.cpp:43: undefined reference to `_imp___ZN10QUdpSocketC1EP7QObject'
collect2: ld returned 1 exit status
make.exe: *** [../bin/ExampleProject.exe] Error 1
CODE AUSZÜGE
wndNetwork.h:
Code: Alles auswählen
#ifndef wndNetwork_h
#define wndNetwork_h
#include <QtGui>
#include <QObject>
#include <QtNetwork>
#include <QUdpSocket>
#include <QHostAddress>
class QTimer;
class QUdpSocket;
class wndNetwork : public QDialog
{
Q_OBJECT;
public:
wndNetwork(void);
public slots:
void request();
// ...
private:
// ...
QUdpSocket udpSocketRead;
QUdpSocket udpSocketSend;
QTimer *timer;
};
#endifCode: Alles auswählen
#include "wndNetwork.h"
#include <QtNetwork>
#include <QUdpSocket>
#include <QHostAddress>
static const int TotalBytes = 50 * 1024 * 1024;
static const int PayloadSize = 65536;
void wndNetwork::request()
{
milliseconds = 0;
recived = false;
long t = 0;
udpSocketRead.bind(QHostAddress::LocalHost, 8100);
}
wndNetwork::wndNetwork(void)
{
// ...
}
Ich hatte auch schon versucht den Socket als Pointer zu deklarieren. Das funktioniert auch nicht. Übrigend verwende ich eigene SLOTs in der Klasse, die auch funktionieren (also Q_OBJECT sollte dann korrekt eingebunden sein). Allerdings ist das wie gesagt mein erstes Program und ich komme mit dem Linker nicht weiter.
Plattform: WinXP, QT4?, DevC++
Danke für die Hilfe!