"hallo welt" unter Linux



  • Hier mal dein Makefile

    # Dein Makefile speichern unter Makefile im gleichen Verzeichnis
    all: klasse code exe
    klasse:
    	g++ -c klasse.cpp
    code:
    	g++ -c code.cpp
    exe:
    	g++ -o test.exe klasse.o code.o
    

    Mit make oder make all kannst du dein Programm jetzt bauen.
    Statt Leerzeichen vor g++ blabla musst du zwei (!) tabs setzen sonst sagt make missing seperator.



  • Also zuerst: Was soll erneuert werden.
    Dann: Doppelpunkt.
    Dann: Von was haengt das ab.
    Dann: Neue Zeile.
    Dann: TAB.
    Dann: Der Befehl, der ausgefuert werden soll.

    Beispiel(in C, weil ich den g++ nicht so gut kenne): Ich habe ein Code in a.c, b.c und c.c. c.c haengt von a.c und b.c ab. Das Makrfile koennte so aussehen:

    testprog: c.c a.o b.o
        gcc c.c a.o b.o -o testprog 
    
    a.o: a.c
        gcc a.c -c 
    b.o: b.c
        gcc b.c -c
    

    Aufgerufen wird das ganze dann mit

    make testprog
    

    und erzeugt Dir dann ein ausfuehrbares Programm mit dem Namen testprog, das mit

    ./testprog
    

    gestartet werden kann.



  • ºgrimmsenº® schrieb:

    Statt Leerzeichen vor g++ blabla musst du zwei (!) tabs setzen sonst sagt make missing seperator.

    Ein Tab. Keine Ahnung wie du auf 2 kommst.



  • mc zeigt erst bei zwei tabs den seperator an. Wenn ich ein Tab mache kommt missing seperator. so ist es jedenfalls bei mir.



  • Ist zwar aus der pmake man, ist bei gmake trotzdem das gleiche:

    SHELL COMMANDS
    Each target may have associated with it a series of shell commands, nor-
    mally used to create the target. Each of the commands in this script
    must be preceded by a tab.[...]



  • ist es wirklich nötig,std::cout <<"hallo welt";zu schreiben???es langt doch auch ein einfaches cout << "hallo welt";oder lieg ich da etwa falsch???:-)



  • webbuster schrieb:

    ist es wirklich nötig,std::cout <<"hallo welt";zu schreiben???es langt doch auch ein einfaches cout << "hallo welt";oder lieg ich da etwa falsch???:-)

    Hier ist das std:: nötig, Du könntest es allerdings durch eine vorangestellte using-Direktive -oder Deklaration ersetzen.



  • kann mir jemand sagen wie ich in c eine char variable oder ein array in eine hexa-dezimal zahl umwandle???

    z.b.

    char text1[10];
    printf("geben sie einen text ein:");
    scanf ("%x",text1);

    vielleicht kann mir jemand helfen...



  • ºgrimmsenº® schrieb:

    mc zeigt erst bei zwei tabs den seperator an. Wenn ich ein Tab mache kommt missing seperator. so ist es jedenfalls bei mir.

    Irgendwie dachte ich mir, dass du mcedit benutzt (insofern war das 'Keine Ahnung' übertrieben 😉 ). Der setzt pro Tab wahrscheinlich nur 4 Spaces und fügt dann 8 Spaces zu einem richtigen Tab zusammen glaub ich. Wenn du dir dein fertiges Makefile (egal mit welchem editor) mal mit cat -A anzeigen läßt, wirst du genau ein ^I (Tab Zeichen) pro Separator sehen.



  • stimmt du hast recht war mein fehler...:-)du kannst natürlich erst den std::operator weglassen wenn wenn du den namespace std dazufügst...z.b so

    #include <iostream>
    using namespace std;
    cout << "hallo welt";
    return 0;

    ich hoffe das ist so jetzt richtig:-)



  • #include <iostream>

    using namespace std;

    int main (){

    cout << "hallo welt";
    return 0;
    }

    puhhh so das ist jetzt richtig....

    compilieren dann unter linux chmod 755 oder chmod+x eingeben und ./programm starten....



  • Bashar schrieb:

    Irgendwie dachte ich mir, dass du mcedit benutzt (insofern war das 'Keine Ahnung' übertrieben 😉 ). Der setzt pro Tab wahrscheinlich nur 4 Spaces und fügt dann 8 Spaces zu einem richtigen Tab zusammen glaub ich.

    Hm, das muss man aber wenn dem wirklich so ist auch irgendwo deaktivieren können; bei mir wird das nämlich nicht so seltsam gehandhabt, ich weiß allerdings nicht mehr ob und wenn ja wo ich das eingestellt habe...



  • DANKE, fuer die vielen Antworten, anscheinend ist mein "hallo Welt" Problem doch wichtiger als erwartet und doch nicht so peinlich fuer mich (auch wenn es das wahrscheinlich schon ist !!) LOL


Anmelden zum Antworten