Ich würde gerne einen kleinen Server mit QT programmieren. Ich habe alle QApplication.h sowie QTcpServer.h und QTcpSocket.h included und erzeuge in meinem Quellcode einfach ein Objekt von Typ QTcpServer. Das ganze lässt sich ohne Fehlermeldungen kompilieren, beim Linken bekomme ich jedoch einen Fehler. Warum? Klar, weil ich ja keine der QTNetzwerkbibliotheken eingebunden habe. In meinem QT Libs Verzeichnis befindet sich eine Lib namens libQtNetwork4.a. Ich nehme an, dass dies die richtige ist, oder? Meine mit "qmake -project" erzeugte .pro Datei sieht im Moment so aus:
Code: Alles auswählen
######################################################################
# Automatically generated by qmake (2.01a) Di 25. Sep 19:35:39 2007
######################################################################
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += F:\Qt\4.3.1\include\QtNetwork
# Input
HEADERS += window.h
SOURCES += main.cpp window.cpp
Der Linkerfehler ist:
Code: Alles auswählen
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `D:/Dokumente und Einstellungen/Robert/Eigen
e Dateien/Eigene Programme/QT/tcp'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
oc -Wl,-s -Wl,-subsystem,windows -mthreads -Wl -o "release\tcp.exe" release\main
.o release\window.o -L"f:\Qt\4.3.1\lib" -lmingw32 -lqtmain -lQtGui4 -lQtCore4
release\main.o:main.cpp:(.text+0xd1): undefined reference to `QTcpServer::~QTcpS
erver()'
release\main.o:main.cpp:(.text+0x264): undefined reference to `QTcpServer::~QTcp
Server()'
release\main.o:main.cpp:(.text$_ZN6windowD1Ev[window::~window()]+0x5c): undefine
d reference to `QTcpServer::~QTcpServer()'
release\main.o:main.cpp:(.text$_ZN6windowD0Ev[window::~window()]+0x5c): undefine
d reference to `QTcpServer::~QTcpServer()'
release\window.o:window.cpp:(.text+0xaa): undefined reference to `_imp___ZN10QTc
pServerC1EP7QObject'
release\window.o:window.cpp:(.text+0x231): undefined reference to `QTcpServer::~
QTcpServer()'
release\window.o:window.cpp:(.text+0x32a): undefined reference to `_imp___ZN10QT
cpServerC1EP7QObject'
release\window.o:window.cpp:(.text+0x4b1): undefined reference to `QTcpServer::~
QTcpServer()'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release\tcp.exe] Error 1
mingw32-make[1]: Leaving directory `D:/Dokumente und Einstellungen/Robert/Eigene
Dateien/Eigene Programme/QT/tcp'
mingw32-make: *** [release] Error 2