Seite 1 von 1

Compile Fehler

Verfasst: 28. Jan 2015 15:21
von pSub
Hallo,

ich bekomme folgende Fehler, wenn ich das aktuelle Template kompilieren will.

Code: Alles auswählen

||=== Build: Debug in Exercise12 (compiler: GNU GCC Compiler) ===|
Sources/Exercise.cpp|138|undefined reference to `Kore::Socket::send(unsigned int, unsigned int, unsigned int, unsigned int, unsigned short, unsigned char const*, int)'|
Sources/Exercise.cpp|145|undefined reference to `Kore::Socket::receive(unsigned char*, int, unsigned int&, unsigned int&)'|
obj/Debug/Sources/Exercise.o||In function `init':|
Sources/Exercise.cpp|295|undefined reference to `Kore::Socket::open(int)'|
obj/Debug/Sources/Exercise.o||In function `__static_initialization_and_destruction_0':|
Sources/Exercise.cpp|132|undefined reference to `Kore::Socket::Socket()'|
Sources/Exercise.cpp|132|undefined reference to `Kore::Socket::~Socket()'|
||=== Build failed: 5 error(s), 86 warning(s) (0 minute(s), 6 second(s)) ===|
Woran kann das liegen? Ich nutze Linux mit Codeblocks.

Re: Compile Fehler

Verfasst: 28. Jan 2015 15:52
von RobDangerous
Undefined reference bedeutet, dass der Linker die Funktion nicht finden konnte - da wurde wohl Socket.cpp nicht mitkompiliert. Einfach nochmal node Kore/make ausführen, das bindet neue Dateien automatisch ins Projekt ein.

Re: Compile Fehler

Verfasst: 28. Jan 2015 16:00
von pSub
Ah, vielen Dank! Das hat geholfen.

Re: Compile Fehler

Verfasst: 29. Jan 2015 14:48
von Max-Maag
Ich hatte das gleiche Problem, allerdings hat auch "node Kore/make" nicht weitergeholfen. Ich habe dann versucht, die fehlenden Dateien per Hand in Visual Studio hinzuzufügen:
dir_structure.png
dir_structure.png (8.86 KiB) 643 mal betrachtet
Jetzt bekomme ich allerdings folgende Fehlermeldungen:

Code: Alles auswählen

1>Socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__bind@12" in Funktion ""public: void __thiscall Kore::Socket::open(int)" (?open@Socket@Kore@@QAEXH@Z)".
1>Socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__closesocket@4" in Funktion ""public: __thiscall Kore::Socket::~Socket(void)" (??1Socket@Kore@@QAE@XZ)".
1>Socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ioctlsocket@12" in Funktion ""public: void __thiscall Kore::Socket::open(int)" (?open@Socket@Kore@@QAEXH@Z)".
1>Socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__htonl@4" in Funktion ""public: void __thiscall Kore::Socket::send(unsigned int,unsigned int,unsigned int,unsigned int,unsigned short,unsigned char const *,int)" (?send@Socket@Kore@@QAEXIIIIGPBEH@Z)".
1>Socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__htons@4" in Funktion ""public: void __thiscall Kore::Socket::open(int)" (?open@Socket@Kore@@QAEXH@Z)".
1>Socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ntohl@4" in Funktion ""public: int __thiscall Kore::Socket::receive(unsigned char *,int,unsigned int &,unsigned int &)" (?receive@Socket@Kore@@QAEHPAEHAAI1@Z)".
1>Socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ntohs@4" in Funktion ""public: int __thiscall Kore::Socket::receive(unsigned char *,int,unsigned int &,unsigned int &)" (?receive@Socket@Kore@@QAEHPAEHAAI1@Z)".
1>Socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__recvfrom@24" in Funktion ""public: int __thiscall Kore::Socket::receive(unsigned char *,int,unsigned int &,unsigned int &)" (?receive@Socket@Kore@@QAEHPAEHAAI1@Z)".
1>Socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__sendto@24" in Funktion ""public: void __thiscall Kore::Socket::send(unsigned int,unsigned int,unsigned int,unsigned int,unsigned short,unsigned char const *,int)" (?send@Socket@Kore@@QAEXIIIIGPBEH@Z)".
1>Socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__socket@12" in Funktion ""public: void __thiscall Kore::Socket::open(int)" (?open@Socket@Kore@@QAEXH@Z)".
1>Socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__WSAStartup@8" in Funktion ""void __cdecl `anonymous namespace'::init(void)" (?init@?A0xd3765e8d@@YAXXZ)".
1>Socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__WSACleanup@0" in Funktion ""void __cdecl `anonymous namespace'::destroy(void)" (?destroy@?A0xd3765e8d@@YAXXZ)".
1>F:\TU\GameTech\MaximilianMaag\build\Debug\Exercise8.exe : fatal error LNK1120: 12 nicht aufgelöste Externe
========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ==========
???

Re: Compile Fehler

Verfasst: 29. Jan 2015 19:49
von RobDangerous
Für das Netzwerk-Zeugs bindet Kore unter Windows auch eine zusätzliche Library ein. Aber auch darum kümmert sich koremake. Hast Du vielleicht Exercise11.sln statt Exercise12.sln geöffnet? Lösch einfach mal den build-Ordner, dann kann (fast) nix schief gehen.

Re: Compile Fehler

Verfasst: 29. Jan 2015 22:00
von Max-Maag
Jetzt läuft's.