Seite 1 von 1

SDL-Compiler Fehler "undefined reference..."

Verfasst: So Mär 10, 2013 7:33 pm
von FritziFoppel
Wollte mal das SDL-Tutorial durchmachen, bin dabei aber auf Probleme gestoßen.

Der Link für "libsdl1.2-dev installieren" funktioniert nicht bzw. kann nicht von meinem browser geöffnet werden

Was ich gemacht hab:
-zuerst die "SDL-1.2.15-win32-x64.zip"-Datei heruntergeladen und in einem Ordner auf dem Desktop gespeichert
-danach hab ich die include und lib Pfade, zunächst in der Benutzervariable, danach in der Systemvariable eingegeben
-den Inhalt von include/SDL in das Codeblocks include Verzichnis kopiert, wie auch den Inhalt von lib ins Codeblocks lib Verzeichnis

-> Beim kompilieren des Beispielprogramms meldet der Compiler "undefined reference to "WinMain@16"

Re: SDL-Compiler Fehler "undefined reference..."

Verfasst: So Mär 10, 2013 8:18 pm
von Xin
FritziFoppel hat geschrieben:Wollte mal das SDL-Tutorial durchmachen, bin dabei aber auf Probleme gestoßen.

Der Link für "libsdl1.2-dev installieren" funktioniert nicht bzw. kann nicht von meinem browser geöffnet werden
Das Tutorial ist auch noch nicht fertig, der Link funktioniert allerdings für Ubuntu. Das sollte man vielleicht etwas anders umschreiben dort.
FritziFoppel hat geschrieben: Was ich gemacht hab:
-zuerst die "SDL-1.2.15-win32-x64.zip"-Datei heruntergeladen und in einem Ordner auf dem Desktop gespeichert
-danach hab ich die include und lib Pfade, zunächst in der Benutzervariable, danach in der Systemvariable eingegeben
-den Inhalt von include/SDL in das Codeblocks include Verzichnis kopiert, wie auch den Inhalt von lib ins Codeblocks lib Verzeichnis

-> Beim kompilieren des Beispielprogramms meldet der Compiler "undefined reference to "WinMain@16"
Das ist hier noch kein SDL-Problem, sondern hier stellt sich die Frage, welchen Compiler Du nutzt (MinGW nehme ich mal an) und welche IDE. Dort entscheidet, wie Du das Projekt erstellt hast.

Nenne Deine main Funktion einfach mal nach WinMain um.

main ist die Funktion, mit der ein Programm gestartet wird - wenn Du ein Windows-Programm hast (hierfür wird der Compiler etwas anders aufgerufen), dann wird die Funktion WinMain() gerufen, die bei Dir vermisst wird.

Re: SDL-Compiler Fehler "undefined reference..."

Verfasst: So Mär 10, 2013 9:20 pm
von nufan
FritziFoppel hat geschrieben:-> Beim kompilieren des Beispielprogramms meldet der Compiler "undefined reference to "WinMain@16"
Wie kompilierst du?
Im SDL-FAQ gibts einen Eintrag dazu:
http://wiki.libsdl.org/moin.fcg/FAQWind ... 4016.27.22
Übrigens hab ich das im anderen Thread erwähnt. Hilft das wirklich nicht?

Re: SDL-Compiler Fehler "undefined reference..."

Verfasst: Mo Mär 11, 2013 7:31 pm
von FritziFoppel
zu Xin:

Wie du schon gesagt hast benutz ich den MinGW-Compiler.
main ist die Funktion, mit der ein Programm gestartet wird - wenn Du ein Windows-Programm hast (hierfür wird der Compiler etwas anders aufgerufen), dann wird die Funktion WinMain() gerufen, die bei Dir vermisst wird.
-> "Warning: resolving _WinMain@16 by linking to _WinMain"


zu nufan:

Das Linken hab ich schon gemacht. Hab aber nach erneutem Suchen diese Seite gefunden:
http://wiki.codeblocks.org/index.php?ti ... de::Blocks
und bin nach "The Good" vorgegangen.

Die 1.2.9-Version geladen, den Inhalt von lib und include wieder in MinGW kopiert, die Systemvariable neu eingegeben und bei den Linkersettings die libs hinzugefügt.

Re: SDL-Compiler Fehler "undefined reference..."

Verfasst: Di Mär 12, 2013 5:24 pm
von FritziFoppel
Das Problem hat sich dadurch leider aber immer noch nicht gelöst. Compiler meldet immer noch den gleichen Fehler.

Re: SDL-Compiler Fehler "undefined reference..."

Verfasst: Mi Mär 13, 2013 8:05 pm
von FritziFoppel
Habs geschafft. Ich glaub ich war einfach zu blöd um "-lmingw32 -lSDLmain -lSDL -mwindows " bei den "Linker Setting" in "other linker options" einzufügen.
Nachdem ich das gemacht hatte meldete der Compiler aber, dass er "iostream" nicht finden konnte. Also hab ich die Endung .c in .cpp umgenannt. Danach gefiel dem Compiler atexit nicht, deshalb hab ich noch "stdlib" eingefügt und jetzt funktionierts.

(für die, die das gleiche Problem haben) ;)