Kleines WinSock Problemchen

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Kleines WinSock Problemchen

Beitrag von Kmitska » Mo Okt 17, 2011 7:02 pm

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:

Code: Alles auswählen

friend class Socket;
ich den Code eingegeben habe.

Wäre dankbar über jede Hilfe!
MfG Kmitska! :)
Zuletzt geändert von Kmitska am Mo Okt 17, 2011 7:13 pm, insgesamt 1-mal geändert.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Kleines WinSock Problemchen

Beitrag von Xin » Mo Okt 17, 2011 7:12 pm

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:

Code: Alles auswählen

friend class Socket;
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...
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: Kleines WinSock Problemchen

Beitrag von Kmitska » Mo Okt 17, 2011 7:18 pm

#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.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Kleines WinSock Problemchen

Beitrag von fat-lobyte » Mo Okt 17, 2011 9:31 pm

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.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Kleines WinSock Problemchen

Beitrag von Xin » Di Okt 18, 2011 8:25 am

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: Kleines WinSock Problemchen

Beitrag von Kmitska » Di Okt 18, 2011 5:23 pm

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)

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: Kleines WinSock Problemchen

Beitrag von Kmitska » Di Okt 18, 2011 9:11 pm

Problem gelöst!!

Musste den Linker "LIBWOSCK32.a" mitteilen. :)

Wie? (Unter Code::Blocks)
Project > Build Options > Release > Linker Settings und danach "Add" :)

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Kleines WinSock Problemchen

Beitrag von Xin » Mi Okt 19, 2011 9:23 am

*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 ^^
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: Kleines WinSock Problemchen

Beitrag von Kmitska » Mi Okt 19, 2011 7:30 pm

Das tun wir glaub ich alle! :D

Antworten