Compiler problem


  • pogo
  • 1075 Aufrufe 11 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Compiler problem

    hallo,

    ich bin wahnsinnig geworden (ich hab keine programmiererfahrung) und hab mir vorgenommen c++ zu lernen.
    und das rächt sich jetz, ich weiß nich was ich falsch mache aber ich schaffe es einfach nich mein hello world zu kompilieren.

    aber ich sollte mal zur sache kommen :D : ich benutz den djgpp - compiler und starte den immer mit cc1plus.exe (und da könnte schon der erste fehler liegen,weil nirgends steht welche der drei exen die "richtige" is...). jetz hab mehrer befehle gefunden (in faqs, readmes, docs, tuts etc.) mit denen ich versuch meine helloworld.cpp zu kompilieren. ich bekomm aber immer wieder die gleiche fehlermeldung.

    also, die befehle:

    -gcc myfile.c -o myfile.exe -lm und gcc -Wall -o myprog.exe mymain.c mysub1.c mysub2.c zum kompilieren und linken

    -gcc -c -Wall myfile.cc zum kompilieren in eine objektdatei

    -gcc -o myprog.exe mymain.o mysub1.o mysub2.o und gxx -o myprog.exe mymain.o mysub1.o mysub2.o zum linken

    ich hab das ganze in etlichen variationen durchprobiert, also andern dateinamen und dateiendung (.c .cc .cpp .cp), hat aber alles nich gefunzt. ich hab immer wieder folgende meldung gekriegt:

    .file "stdin"
    gcc2_compiled.:
    ___gnu_compiled_cplusplus:
    stdin:1: syntax error before `.'

    und ich hab null ahnung was das heisst ......


    :confused: :confused:
  • bitte sehr, mein prograemmchen:

    #include <iostream.h>

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


    das "int main();" hab ich auch mal weggelassen, bringt aber auch nichts........

    hab ich euch jetz mit der flut an informationen abgeschreckt? :rolleyes: :D

    war nich meine absicht... postet doch einfach mal welchen befehl ihr benutzt und wie man die pfadangabe macht (vielleicht liegts ja da ran, fällt mir grad ein...) oder empfehlt mir andere compiler. :P
  • es ist im c++ sehr ungewöhnlich, dass der iostream-header inklusive .h eingebunden wird (bzw. ist es falsch nach ISO-C++!)

    probiere mal, folgendes zu kompilieren:
    ----------------

    #include <iostream>
    using namespace std;

    int main()
    {
    cout << endl << "Hello World!" << endl;
    return 0;
    }


    -----------------
    beachte, dass am ende des programms auch eine leerzeile stehen sollte!

    ciao
  • das funzt auch nicht. ich schätze auch das das eher an dem compiler liegt als an dem programm....

    und das mit dem .h im header hab ich aus "Fachliteratur" sprich einem buch über c++ (und nich über c!)
  • also bei mir funzt das auch nicht wirklich. wie gesagt, da ist dann die beschriebene meldung.....
    mir ist grad eingefallen, dass es vielleicht an der eingabe der datei-adresse liegen könnte. ich hab das so : "g++ helloworld.cpp" eingegeben. helloworld.cpp liegt im gleichen verzeichnis wie der compiler, von daher müsste das doch richtig sein, oder?
  • Der Grund dürfte ein ganz einfacher sein: der gcc entscheidet an der Dateiendung, wie er übersetzen muss - C oder C++
    Die iostream Datei ist ein Include von C++ und darf in C nicht benutzt werden. Wenn die Datei meinprog.c heisst, geht der gcc von einem reinen C-Programm aus. Die Datei MUSS die Endung cpp haben, also meinprog.cpp.

    Grüße
    Michael
  • Sorry, aber oben in den gcc-Beispielen steht immer die Endung .c und nicht .cpp.

    Der einfachste Aufruf des gcc ist:
    gcc -o zieldatei.exe quelldatei1.cpp quelldatei2.cpp

    -Wall für alle Warnungen ist auch noch keine schlechte Idee.
    -O schaltet den Optimierer ein und -g generiert Debug-Infos.

    Ich erinnere mich noch an diverse abstruse Fehler, wenn man an den maximalen Bezeichnerlängen herumspielt (31 signifikante Zeichen) oder verschachtelte Kommentare erlaubt. Ich gehe aber davon aus, dass keine entsprechenden Optionen gesetzt sind.

    Grüße
    Michael