Problem nach dem Kompilieren



  • Hallo ihr Lieben,

    ich bin eine absolut blutige Anfängerin, was das Programmieren angeht, und habe folgendes Problem:

    Nach dem Kompilieren kann ich mein Programm im Editor nicht mehr lesen, das sieht dann etwa so aus:

    MZ   ÿÿ ¸ @ € º ´ Í!¸LÍ!This program cannot be run in DOS mode.

    $ PE L ¦£W ¨ ¯ à   t ¤     @        ú      à ì    ¨á 0 .text Xr  t  P.data (   x @ 0À.rdata   
    z @ @.eh_framÄ °  „ @ 0@.bss 4 Ð €À.idata ì à
    š @ 0À.CRT  ð  ¤ @ 0À.tls   ¦ @ 0À Sƒì‹D$ ‹ ‹ =‘ ÀwM= Às[= À…Ž ÇD Ç è_p ƒø„Á …À…¦ ¶ 1ÀƒÄ[ ´& =” Àt=– ÀtL=“ ÀuÛ» ët& 1ÛÇD Ç èp ƒø„¡ …Àt­Ç ÿиÿÿÿÿëŸ= Àu–ÇD Ç èÊo ƒøtL…À„uÿÿÿÇ ÿиÿÿÿÿédÿÿÿfÇ ÿиÿÿÿÿéOÿÿÿÇD Ç èo ƒÈÿé3ÿÿÿÇD Ç èeo ƒÈÿéÿÿÿt& ÇD Ç...

    Das passiert mir leider bei allen Übungsaufgaben. Ich nehme mal an, dass ich nur einen recht blöden Fehler mache, aber welchen?

    Viele Grüße und Dankeschön schonmal 🙂



  • Vor dem kompilieren hast du kein Programm, sondern nur Sourcecode (.cpp bzw. .h).
    Nach dem kompilieren hast du zusätzlich eine Binärdatei (das Programm), die man nicht mit einem Editor bearbeiten kann.

    Wenn nach dem kompilieren der Sourcecode plötzlich das Programm enthält, hast du beim Aufruf des Compilers etwas falsch gemacht. Wie rufst du den Compiler auf?


  • Mod

    Lisii schrieb:

    Nach dem Kompilieren kann ich mein Programm im Editor nicht mehr lesen

    Das sollst du auch nicht können. Was bezweckst du damit?



  • Würdest du die Datei mit paint öffnen, kommt theoretisch auch müll raus. Warum sollte das bei einem Texteditor anders sein?



  • Dankeschön schonmal für eure Antworten 🙂

    @ manni66: Ich benutze den Befehl g++ Programmname -o Programmname
    @ Arcoth: Wie erwähnt, bin ich noch nicht sonderlich gut und manchmal macht mein Programm dann nicht, was es soll, und dann würde ich es gerne nochmal editieren.

    Viele Grüße



  • Lisii schrieb:

    manchmal macht mein Programm dann nicht, was es soll, und dann würde ich es gerne nochmal editieren.

    dann änderst du den Quellcode und kompilierst nochmal



  • Lisii schrieb:

    Ich benutze den Befehl g++ Programmname -o Programmname

    Hinter dem -o steht der Name der Ausgabedatei.
    Wenn der mit dem Namen von der Eingabedatei (hier alles zwischen g++ und -o) ist, wird deine Eingabedatei natürlich überschrieben.

    Der Quellcode hat i.A. die Endung .cpp
    Die Ausgabedatei ist bei Linux ohne Endung, bei Windows ist es .exe


  • Mod

    Lisii schrieb:

    @ Arcoth: Wie erwähnt, bin ich noch nicht sonderlich gut und manchmal macht mein Programm dann nicht, was es soll, und dann würde ich es gerne nochmal editieren.

    Was ist einfacher: Den C++ Code anpassen, oder den rohen Maschinencode anzuschauen?



  • Lisii schrieb:

    @ manni66: Ich benutze den Befehl g++ Programmname -o Programmname

    Tja, das ist der Fehler. Der Sourcecode sollte natürlich einen anderen Dateinamen haben als das Programm. Üblich wäre für ein kleines Programm
    g++ Programmname.cpp -o Programmname



  • Das sieht ja nach einer Anwendung aus, die unter Windows lauffähig sein sollte.

    Ich denke daher mal, dass du unter Windows programmierst. Welche Entwicklungsumgebung nutzt du denn?



  • SBond schrieb:

    Welche Entwicklungsumgebung nutzt du denn?

    Wahrscheinlich keine.
    Sonst müsste sie nicht den Compiler manuell aufrufen und die Datei in den Editor laden.



  • DirkB schrieb:

    SBond schrieb:

    Welche Entwicklungsumgebung nutzt du denn?

    Wahrscheinlich keine.
    Sonst müsste sie nicht den Compiler manuell aufrufen und die Datei in den Editor laden.

    scheint so...

    Aber gerade als Anfänger(in) empfinde ich es schon als Sinnvoll eine IDE zu nutzen. Das kann ja Anfangs eine einfache sein wie Code::Blocks. ...oder Eclipse



  • SBond schrieb:

    Aber gerade als Anfänger(in) empfinde ich es schon als Sinnvoll eine IDE zu nutzen.

    Nö. Dann kriegt man nicht mit, was hinter den Kulissen so abläuft, und später begreift man die Zusammenhänge nicht mehr.
    Es kommt vielleicht auch ein bisschen darauf an, was/wieviel man wirklich lernen will.



  • ja das kann gut sein...



  • Belli schrieb:

    SBond schrieb:

    Aber gerade als Anfänger(in) empfinde ich es schon als Sinnvoll eine IDE zu nutzen.

    Nö. Dann kriegt man nicht mit, was hinter den Kulissen so abläuft, und später begreift man die Zusammenhänge nicht mehr.
    Es kommt vielleicht auch ein bisschen darauf an, was/wieviel man wirklich lernen will.

    Ja. Jain. Vielleicht 😃
    Für die ersten 1-2 Miniprogrämmchen... ja, da wäre es vermutlich wirklich gut wenn man den Compiler mit Hand von der Commandline rausstartet.
    Oder sich halt mit Hand ein Batchfile mit dem passenden Aufruf schreibt. Mal gucken was man machen muss um ne externe Library einzubinden etc.

    Aber übertreiben würde ich es nicht. Ich sehe keinen echten Sinn dahinter heute noch grundsätzlich preventiv Dinge wie z.B. den Umgang mit Makefiles zu lernen.


  • Mod

    Belli schrieb:

    SBond schrieb:

    Aber gerade als Anfänger(in) empfinde ich es schon als Sinnvoll eine IDE zu nutzen.

    Nö. Dann kriegt man nicht mit, was hinter den Kulissen so abläuft, und später begreift man die Zusammenhänge nicht mehr.

    Das kann schon stimmen, aber gerade als Anfänger sollte man Schritt für Schritt an die Sprache und ihre praktischen Werkzeuge herankommen. Jemandem die Sprache und das Übersetzungsverfahren gleichzeitig aufzubürden kann für unerfahrene Programmierer ein wenig viel sein. Und um den manuellen Umgang mit Compilern kommt man schlussendlich sowieso nicht vorbei, daher kommt das auch von selbst und muss nicht unbedingt erzwungen werden.



  • Arcoth schrieb:

    Und um den manuellen Umgang mit Compilern kommt man schlussendlich sowieso nicht vorbei, daher kommt das auch von selbst und muss nicht unbedingt erzwungen werden.

    Ach wohl, man begegnet immer wieder Leuten die ganz in echt als Programmierer arbeiten aber keinen Tau davon haben dass ein Compiler normalerweise ein Commandline Tool ist welches man auch so rausstarten kann.
    Die wissen dann auch oft nicht welche Files ins VCS gehören und welche nicht, und committen einfach alles. Sad but true.



  • ja da hast du natürlich recht.

    ...und ich sehe gerade:

    SBond schrieb:

    Aber gerade als Anfänger(in) empfinde ich es schon als Sinnvoll eine IDE zu nutzen.

    Schande über mich. Mit Anfänger(in) meinte ich die Threadstellerin und nicht mich. Mein Satzbau leidet mittlerweile auch schon. ..traurig. Ich definiere mich hier mal als fortgeschrittener Anfäng-er. ...auch wenn ich dafür noch sehr oft Fragen stelle 🙄


Log in to reply