Fehlermeldung= fatal error LNK1120: 1 nicht aufgelöste externe Verweise.



  • Hi,
    Ich nutze microsoft visual C++. Heute wollte ich mein erstes "Programm" (hallo Welt) schreiben. Leider wurde ich durch eine Fehlermeldung gestoppt.

    Code:
    #include <isostream.h>

    main()
    {
    cout << "Hello World!\n";
    return 0;
    }

    Fehlermeldung:

    1>------ Erstellen gestartet: Projekt: Hallo Welt!, Konfiguration: Debug Win32 ------
    1>LINK : error LNK2001: Nicht aufgelöstes externes Symbol "_WinMainCRTStartup".
    1>c:\users\immo primus\documents\visual studio 2010\Projects\Hallo Welt!\Debug\Hallo Welt!.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    Bitte Helft mir es ist frustrierend wenn man im Buch kapitel 6 ist ohne irgendwas richtig geschrieben zu haben!!
    Vielen Dank

    P.S Lerne mit dem Buch
    C++- Schritt für Schritt zum Profie von Jesse Liberty, 😕 😕


  • Mod

    Dieser Code war vielleicht mal so Anno 1995 etwas was man einem Compiler vorsetzen durfte. Wenn dein Buch so etwas lehrt, ist es hoffnungslos veraltet.

    Der eigentliche Fehler ist aber, dass du irgendwo beim Erstellen des Projekts etwas falsch gemacht hast. Da soll wohl eine Windowsanwendung erstellt werden. Guck mal, ob es etwas wie "Konsolenanwendung" oder ähnliches gibt.



  • Ich würde mal vermuten, du hast den falschen Projekttyp ausgewählt. Beim Anlegen des Projekts mußt du "Konsolenprogramm" angeben.



  • Immo-rtal schrieb:

    #include <isostream.h>

    main()
    {
    cout << "Hello World!\n";
    return 0;
    }

    isostream.h gibt es nicht (mehr?). probier mal iostream und dir fehlt ein

    using namespace std;
    

    nach dem Include.



  • Hier die tolle Version von Hello World in C++03 😉 :

    #include <iostream>
    int main()
    {
      std::cout << "Hallo Welt!";
    }
    


  • EOutOfResources_At_Work schrieb:

    Hier die tolle Version von Hello World in C++03 😉 :

    #include <iostream>
    int main()
    {
      std::cout << "Hallo Welt!";
    }
    

    es fehlt

    return 0;
    

    :p



  • stalker schrieb:

    es fehlt

    return 0;
    

    :p

    Nö!


  • Mod

    Aber einen Zeilenumbruch würde ich dem Ende der Ausgabe noch spendieren. Macht die Sache angenehmer zu benutzen.


  • Administrator

    Tachyon schrieb:

    stalker schrieb:

    es fehlt

    return 0;
    

    :p

    Nö!

    Doch!

    Oder mit Erklärung:
    Es ist optional bei der main -Funktion. Wenn keine return -Anweisung am Ende der main -Funktion vorhanden ist, dann wird automatisch ein return 0 "eingefügt". Ob man es hinschreibt oder nicht, ist daher eine subjektive Entscheidung. Und da alle Funktionen mit einem Rückgabewert ein return brauchen, soll man in der main -Funktion keine Ausnahme machen, obwohl man es dürfte. Sagt meine Richtlinie. Daher -> Doch! 😃

    Grüssli



  • Es ist optional bei der main-Funktion. Wenn keine return-Anweisung am Ende der main-Funktion vorhanden ist, dann wird automatisch ein return 0 "eingefügt".

    Wo wird das eingefügt? Vom Präprozessor, Compiler?
    Wenn schon wird da ein

    mov eax, 0
    

    vom Compiler eingefügt. 😉


  • Mod

    Wenn es speziell eine Richtlinie gibt, dass das in main nicht nötig ist, dann ist das in main auch nicht nötig und man braucht es nicht um seiner selbst willen hinzuschreiben.

    Daher -> Nö.



  • Der code ist veraltet, würde der aber so noch funktionieren?

    Nein ich habe alles richtig ausgewählt wie im Buch beschrieben, windows32 Konsolenanwendung ausgewählt und danch c++dateu bei DateiY>neu

    bitte helft mir?!



  • Der code ist veraltet, würde der aber so noch funktionieren?

    Nein tut er nicht.



  • Danke habt ihr einen vorschlag wie ich dann c++ lernen kann?
    womit, wo ,wie usw.
    Vielen Dank


Anmelden zum Antworten