riesen problem unter Linux



  • Ich erhalte diese Fehlermeldung.

    cd '/home/hell/function/debug' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -k 
    gmake all-recursive
    Making all in src
    linking pagerank (g++)
    /usr/lib/gcc/i586-suse-linux/4.2.1/../../../crt1.o: In function `_start':
    
    (.text+0x18): undefined reference to `main'
    
    collect2: ld returned 1 exit status
    gmake[2]: *** [function] Error 1
    gmake[2]: Target `all' not remade because of errors.
    gmake[2]: Nothing to be done for `all-am'.
    gmake[1]: *** [all-recursive] Error 1
    gmake: *** [all] Error 2
    
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <iostream>
    #include <sstream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    printf("Hallo Fehler");
    retunr 1;
    
    }
    

    wer hat eine Zauberkugel oder schon mal solch ein Problem bewältigt?

    undefined reference to `main'

    die main ist vorhanden .....



  • wie wäre es mit return anstatt retunr?



  • Leider ist der Fehler immer noch vorhanden.

    ...



  • Geht's denn nur mit g++ (ohne MAKEFILE)?



  • Hi,

    wäre es nicht besser du würdest den Code so schreiben:

    #include <iostream>
    using namespace std;
    
    int main() // Die Sachen in der Klammer einfach weglassen
    {
    cout << "Hallo Fehler\n"; // Ausgabe mit cout ist meineserachtens
                              // viel leichter als printf();
                              // \n steht für Neue Zeile
    return 0;                 // du kannst auch return 1; verwenden
    }
    

    Gruß

    AchtmalAcht



  • Hallo 64 (kleiner scherz am rande)

    über die Parameter können Programmdaten mit übergeben werden.

    Es muss irgendwie an g++ oder etwas Anderem liegen. der Code funktioniert so...

    vielleicht sollte ich g++ neu installieren?



  • linuxprobs schrieb:

    ...

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <iostream>
    #include <sstream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    printf("Hallo Fehler");
    retunr 1;
    
    }
    

    ...
    undefined reference to `main'
    ...

    Mehrere Anmerkung:
    a) Warum includierst du Header die du nicht verwendest?

    b) Zumindestens unter C++ sind in deinen Code bereits Fehler, die angegebenen Header sind teilweise falsch:
    <string.h> ==> <cstring>
    <stdio.h> ==> <cstdio>
    <stdlib.h> ==> <cstdlib>

    c) Ich nehme an das der Fehler (arbeite nicht mit g++) wenn an einer fehlenden Sourceangabe beim Aufruf liegen könnte. Meine Glaskugel ist aber leider schon seit 30 Jahren in der Reperatur...

    cu André



  • Mach doch probeweise mal:

    g++ test.cpp -o test
    

    Funktioniert das? Ich kenn gmake nicht, braucht aber doch vermutlich ein MAKEFILE, oder? Zeig das doch mal!

    Hast du die libc auf'm neuesten Stand? gcc?


Anmelden zum Antworten