undefined reference to `WinMain



  • Mahlzeit,

    Da bin ich mal wieder mit meinem großen C Projekt. 🙂

    Mittlerweile sind alle Microsoft spezifischen Sachen umgangen worden, bzw. neu geschrieben worden und schwups macht der Linker Probleme:

    e:\p\giaw\src\pkg\mingwrt-4.0.3-1-mingw32-src\bld/../mingwrt-4.0.3-1-mingw32-src/src/libcrt/crt/main.c:91: undefined reference to `WinMain@16'

    Zum Thema WinMain habe ich auch schon etwas hier im Forum gefunden:
    http://www.c-plusplus.net/forum/12729-full
    Allerdings arbeite ich:
    1. Nicht mit C++ sondern mit C (Oder macht das in Sachen Linker kein Unterschied?)
    2. Mit keiner IDE sondern rufe das Makefile noch ganz klassisch von der Eingabeaufforderung auf.

    Was mich an dieser Fehlermeldung vor allem stört ist, dass er versucht auf ein "E" Laufwerk zuzugreifen, dieses existiert bei mir überhaupt nicht, und das er mal normale Slash's verwendet und mal Backsplash's.



  • Ich würde mal vermuten, dass du dein Programm als normale Win32 Anwendung kompilierst, aber keine WinMain() definiert hast, sondern nur eine main(). Lösung: Dein Programm als Windows Konsolenanwendung kompilieren... 😉



  • dot schrieb:

    Ich würde mal vermuten, dass du dein Programm als normale Win32 Anwendung kompilierst, aber keine WinMain() definiert hast, sondern nur eine main(). Lösung: Dein Programm als Windows Konsolenanwendung kompilieren... 😉

    Jap eine WinMain() gibt es nicht.
    Wie macht man das ganze denn? Habe gerade mal CodeBlocks angeschmissen um dort in den Einstellungen zu schauen, welche Flags in Frage kommen würden und nichts zum Thema WinMain gefunden.
    Google spuckt mir leider auch keine produktiven Ergebnisse aus.
    Ist das ganze überhaupt ein Flag oder ein ganz anderer Compiler?



  • Verwendest du zufällig die -mwindows Option? Wenn ja: don't



  • Nope benutze nur folgende fünf Flags:

    -g -Wall -std=c99 -lmingw32 -D__NO_MINGW_LFS


Anmelden zum Antworten