Compilen unter Linux



  • Moin,

    Mich würde mal interessieren, wie man unter Linux einen C++ Code Compiliert.
    Erstmal ein paar Daten:

    Betriebssystem:
    Ubuntu 7.10

    Complier:
    GCC

    Code:

    #include <iostream>
    using namespace std;
    
    int main()
    
    {
    	cout<<"Hello World!";
    	return(0);
    }
    

    Wenn ich das ganze in der Shell Compilieren möchte, bekomm ich nur folgenden output:

    markus@m-desktop:~/Desktop/blah$ gcc test.cpp
    /tmp/ccgJZr4W.o: In function \_\_static\_initialization\_and\_destruction_0(int, int)': test.cpp:(.text+0x23): undefined reference tostd::ios_base::Init::Init()'
    /tmp/ccgJZr4W.o: In function \_\_tcf\_0': test.cpp:(.text+0x6c): undefined reference tostd::ios_base::Init::~Init()'
    /tmp/ccgJZr4W.o: In function main': test.cpp:(.text+0x8e): undefined reference tostd::cout'
    test.cpp:(.text+0x93): undefined reference to std::basic\_ostream<char, std::char\_traits<char> >& std::operator<< <std::char\_traits<char> >(std::basic\_ostream<char, std::char_traits<char> >&, char const*)' /tmp/ccgJZr4W.o:(.eh\_frame+0x11): undefined reference to__gxx_personality_v0'
    collect2: ld returned 1 exit status

    Hoffe ihr könnt mir helfen. 🙂



  • Mit "gcc" rufst du den c Kompiler auf, dein Programm ist aber c++.Den c++ Kompiler rufst du mit "g++" auf.



  • Dankeschön 🙂

    Jetzt jedoch eine weitere Frage, wie bekomme ich aus dem a.out eine ausführbare Datei, muss die noch irgendwie gelinkt werden o.Ä.?
    Bekomme nämlich nichts ausgegeben beim öffnen.



  • Die ist schon ausführbar, sonst würdest du eine Fehlermeldung bezüglich fehlender Rechte oder falschem Binärformat bekommen. Wenn du sie von der Konsole aus startest und es erscheint direkt der nächste Prompt, liegt das daran, dass dein "Hello World" nicht mit einem Newline abgeschlossen ist.



  • Passiert leider nichts. Bekomme keine Ausgabe.
    Hab jetzt mal was mit Ein & Ausgabe geschrieben, bekomme aber immer noch keine Ausgabe in der Konsole.

    #include <iostream>
    using namespace std;
    
    int main()
    
    {
    	//variablendeklaration
    	int zahl1;
    	int zahl2;
    	int zahl3;
    
    	//eingabe
    	cout<<"bitte eine zahl eingeben: ";
    	cin>>zahl1;
    	cout<<"bitte eine weitere zahl eingeben, welche dazuaddiert wird: ";
    	cin>>zahl2;
    
    	//berechnung
    	zahl3=zahl1+zahl2;
    
    	//ausgabe
    	cout<<"das ergebniss betraegt:"<<zahl3<<endl;
    
    	return(0);
    }
    

    Ausgabe in der Konsole:

    markus@m-desktop:~/Desktop/blah$ g++ -o test test.cpp
    markus@m-desktop:~/Desktop/blah$ test
    markus@m-desktop:~/Desktop/blah$



  • Probier mal ./test aus, dadurch rufst du die Executable im aktuellen Verzeichnis auf.



  • markus@m-desktop:~/Desktop/blah$ ./test
    bitte eine zahl eingeben: 1
    bitte eine weitere zahl eingeben, welche dazuaddiert wird: 2
    das ergebniss betraegt:3

    Vielen Dank, endlich klappts 🙂


Anmelden zum Antworten