Seite 1 von 1
Kleines WinSock Problemchen
Verfasst: Mo Okt 17, 2011 7:02 pm
von Kmitska
Hallo Leute,
Wollte kurz fragen, was bei mir der Fehler ist:
undefined reference to 'Socket::~Socket()'
undefined reference to 'Socket::Socket()'
undefined reference to 'Socket::create()'
undefined reference to 'Socket::close() const '
Dieses Programm ist zusammen mit WxWidget und bei der Klasse 'Socket' habe ich sozusagen die Klasse (InfoDialog:wxDialog) friend von 'Socket' gemacht indem:
ich den Code eingegeben habe.
Wäre dankbar über jede Hilfe!
MfG Kmitska!

Re: Kleines WinSock Problemchen
Verfasst: Mo Okt 17, 2011 7:12 pm
von Xin
Kmitska hat geschrieben:Hallo Leute,
Wollte kurz fragen, was bei mir der Fehler ist:
undefined reference to 'Socket::~Socket()'
undefined reference to 'Socket::Socket()'
undefined reference to 'Socket::create()'
undefined reference to 'Socket::close() const '
Dieses Programm ist zusammen mit WxWidget und bei der Klasse 'Socket' habe ich sozusagen die Klasse (InfoDialog:wxDialog) friend von 'Socket' gemacht indem:
Wo kommt die "class Socket" her?
Faktisch fehlt hier für die genannten Funktionen die Implementierung. Also wenn es eine eigene Klasse ist, dann fehlt das kompilierte Objektfile Deiner Klasse (bzw. die Angabe der .cpp-Datei, wo die Implementierungen drin sind) und wenn die Klasse Socket aus einer Library kommt, dann fehlt die Lib.
Den Abschnitt mit friend class Socket; verstehe ich nicht richtig, hier verstehe ich nicht wirklich, wer hier Friend vom wem ist...
Re: Kleines WinSock Problemchen
Verfasst: Mo Okt 17, 2011 7:18 pm
von Kmitska
#include <wx/wx.h>
#include "FirstWindow.h"
#include "socket.h"
#include <string>
Das sind die Bibltiotheken die ich eingebunden habe und socket.h + FirstWindow.h befinden sich in demselben Pfad. Aber was mir noch aufgefallen ist, dass es bei "...\obj\Release" socket.h und FirstWindow.h nicht vorhanden ist und auch socket.cpp (Ja eine eigene Datei für die Implementierung), wäre dies der Fehler? Wenn ja habe ich sie doch hier eingebunden und müssten ja automatisch mit verarbeitet werden.
Re: Kleines WinSock Problemchen
Verfasst: Mo Okt 17, 2011 9:31 pm
von fat-lobyte
Kmitska hat geschrieben: und auch socket.cpp (Ja eine eigene Datei für die Implementierung), wäre dies der Fehler?
Ja, genau das ist das. "Undefined Reference" bedeutet, dass die Symbole zwar deklariert (in den .h/.hpp Dateien), aber nicht implementiert wurden. Dazu musst du die .cpp oder .lib oder .dll dateien dazulinken. Darf man Fragen wo diese "Socket"-Klasse herkommt? Wenn die von wxWidgets ist, musst du die zugehörige wxSocket Bibliothek dazulinken.
Re: Kleines WinSock Problemchen
Verfasst: Di Okt 18, 2011 8:25 am
von Xin
Und wenn socket.cpp Deine eigene Implementierung ist, dann musst Du sie dem Compiler mitgeben.
Also in der Entwicklungsumgebung dem Projekt hinzufügen oder dem Compiler beim Aufruf mitteilen:
gcc -o programmname main.cpp socket.cpp
Und zusätzlich dazu die für wxWidgets erforderlichen Parameter, die ich aber nicht im Kopf habe.
Re: Kleines WinSock Problemchen
Verfasst: Di Okt 18, 2011 5:23 pm
von Kmitska
Also ich habe inzwischen dieses Problem gelöst, nun kriege ich Fehler wie dies hier:
undefined reference to 'closesocket@4'
was soll das '@' Zeichen bedeuten und was stimmt jetzt nicht? O.o
Und die Socket Klasse gehört nicht zur wxWidget, sie ist in eine eigene Header-Datei gepackt. (winsock.h)
Re: Kleines WinSock Problemchen
Verfasst: Di Okt 18, 2011 9:11 pm
von Kmitska
Problem gelöst!!
Musste den Linker "LIBWOSCK32.a" mitteilen.
Wie? (Unter Code::Blocks)
Project > Build Options > Release > Linker Settings und danach "Add"

Re: Kleines WinSock Problemchen
Verfasst: Mi Okt 19, 2011 9:23 am
von Xin
*thumbs up*
Selbstgefundene Lösungen am Ende des Threads schreiben kommt hier sehr gut an. Nichts hasse ich mehr als Threads mit Problemen, die ich auch habe und am Schluss der Hinweis, dass derjenige sein Problem gelöst hat, aber nicht erwähnt wie er das gemacht hat ^^
Re: Kleines WinSock Problemchen
Verfasst: Mi Okt 19, 2011 7:30 pm
von Kmitska
Das tun wir glaub ich alle!
