Wie C/C++ Compiler installieren?



  • Hallo!

    Ich glaube, ich kriegst nicht hin . . .

    Ich versuche jetzt mal seit neuestem unter Ubuntu 6.06 in C/C++ zu programmieren. Aaaaber, ich bekomme einfach nichts kompiliert.

    Zuerst wurde gemeckert, dass "gcc" nicht gefunden wird. Das habe ich dann mit Hilfe von Synaptic nachinstalliert (gcc 4.0.3). Nachdem ich dann noch einen Link gemacht habe (ln -s gcc-4.0 gcc) hat er das gcc auch gefressen. Aber ich werde den Verdacht nicht los, dass mir alle standard Includes fehlen, weil er gesagt hat, dass er "stdio.h" nicht findet. Habe dann selber mal die festplatte mit "locate" danach durchsucht, und habe es auch nicht gefunden.
    Dann bin ich auf die gcc Webseite um mal zu schauen, wie die Installation funktioniert, steige da aber nicht so durch.

    Kann mir bitte jemand helfen den gcc unter Ubuntu 6.06 zu installieren?

    Gruß
    Maik



  • Vielleicht hilft das: http://wiki.ubuntuusers.de/GCC
    BTW, die Header brauchste nicht großartig suchen, die liegen (für C) in /usr/include und für die C++ Standardbibliothek in /usr/lib/<arch>/gcc-v3/include iirc.



  • Zuerst solltest Du Dich für eine Programmiersprache entscheiden. Es gibt eine Programmiersprache, die heißt C und eine andere Programmiersprache, die heißt C++. Diese sind durchaus verwand, aber nicht das selbe. Ich finde es immer wieder schade, daß das so oft in einen Topf geworfen wird.

    Da Ubuntu eine Debian-basierte Distribution ist, geht es am einfachsten, indem Du einfach auf der Kommandozeile "apt-get install gcc" eingibst. Wenn Du Dich für C++-Programmierung entschieden hast, dann einfach "apt-get install g++". Damit sollte alles installiert sein, um ein hello-world oder so zu bauen.

    Da Du Dich unter Ubuntu nicht als root anmelden kannst, mußt Du erst mal root werden. Das geht in der Konsole mit "sudo bash".

    Über Synaptic geht es sicherlich genauso. Nimm halt nur gcc statt gcc-4.0.

    Soweit ich mich entsinnen kann, verwendet Ubuntu 6.06 standardmässig gcc 4.1. Der 4.0 hat da eigentlich mehr Erinnerungswert. Er wird halt als gcc-4.0 installiert, damit er dem Standardcompiler nicht im Weg steht.

    Tntnet



  • Super, vielen Dank!

    Das Package "build-essential" hat mir gefehlt. Da bin ich nicht drauf gekommen.

    @tntnet: Du hast ja recht mit dem unterschied zwischen C und C++. Ich wollte damit auch nur sagen, dass ich gerne beide zur Verfügung hätte, da ich unter Windows halt auch schon in C oder C++ programmiert habe, und mich jetzt mal in Linuxprogrammierung einfuchsen möchte.

    Das mit den Versionen finde ich nach wie vor noch sehr verwirrend, da man doch sehr aufpassen muss, dass die verwendete Compilerversion zu der Version passt, mit der der kernel kompiliert wurde, oder? Damit man sich auch Programme aus Sourcen selber kompilieren kann, oder?

    Gruß
    Maik



  • Kiamur schrieb:

    Das mit den Versionen finde ich nach wie vor noch sehr verwirrend, da man doch sehr aufpassen muss, dass die verwendete Compilerversion zu der Version passt, mit der der kernel kompiliert wurde, oder? Damit man sich auch Programme aus Sourcen selber kompilieren kann, oder?

    Lass dich nicht verrückt machen, das macht nichts aus. Kritisch sind unterschiedliche gcc-Versionen nur, wenn die Libs mit gcc3 und das Programm mit gcc4 kompiliert wird (bei C kann es noch funktionieren, bei C++ wirds wohl Linker-Fehler hageln). Der Kernel hat damit nichts am Hut.

    tntnet schrieb:

    Zuerst solltest Du Dich für eine Programmiersprache entscheiden. Es gibt eine Programmiersprache, die heißt C und eine andere Programmiersprache, die heißt C++. Diese sind durchaus verwand, aber nicht das selbe. Ich finde es immer wieder schade, daß das so oft in einen Topf geworfen wird.

    gcc == GNU Compiler Collection != GNU C Compiler. Den gcc (mit "die" gcc kann ich mich irgendwie nicht anfreunden ;)) braucht man auch für C++.

    tntnet schrieb:

    Da Du Dich unter Ubuntu nicht als root anmelden kannst, mußt Du erst mal root werden. Das geht in der Konsole mit "sudo bash".

    Das ist Unsinn. sudo ist doch gerade dazu da, dass man keine root-Shell aufmacht. sudo apt-get <blabla> funktioniert auch.



  • Kiamur schrieb:

    Das mit den Versionen finde ich nach wie vor noch sehr verwirrend, da man doch sehr aufpassen muss, dass die verwendete Compilerversion zu der Version passt, mit der der kernel kompiliert wurde, oder? Damit man sich auch Programme aus Sourcen selber kompilieren kann, oder?

    Inkompatiblitäten zwischen Binaries verschiedener Compiler entstanden durch die mehrfache Änderung der C++ ABI (Application Binary Interface) durch die GCC-Crew. Da der Kernel aber pure C ist, braucht man da nichts weiter zu beachten.

    Um eigene Programme zu kompilieren ist die libc auch viel wichtiger als der Kernel, und auch da gilt pure C ➡ kein Problem. Allerdings gibt es natürlich Probleme wenn Du ein brandneues Produkt gegen eine uralte libc compilieren willst, weil dann Funktionen evtl. noch garnicht vorhanden sind (waren). Das sollte aber mit einer halbwegs aktuellen Distri nicht passieren.

    Wo es allerdings kracht ist wenn Du eine C++-Bibliothek mit einem Pre-3er g++ compilierst und mit einem 3.4er wieder benutzen willst (Versionsnummern frei herusgegriffen).

    Imho kommt es viel häufiger vor, dass Distributionsferne Binary-Pakete nicht laufen, als dass man den Source nicht compilieren könnte.



  • .filmor schrieb:

    gcc == GNU Compiler Collection != GNU C Compiler. Den gcc (mit "die" gcc kann ich mich irgendwie nicht anfreunden ;)) braucht man auch für C++.

    Wenn schon korrigieren, dann bitte aber auch richtig :p
    GGC: GNU Compiler Collection
    gcc: GNU C Compiler
    g++: GNU C++ Compiler



  • bessawissa schrieb:

    GGC: GNU Compiler Collection

    GNU Gompiler? 😃



  • LordJaxom schrieb:

    bessawissa schrieb:

    GGC: GNU Compiler Collection

    GNU Gompiler? 😃

    aber hallo ⚠
    kennst du etwa noch nicht den neuen compiler vom Gnome projekt 🕶 ?


Anmelden zum Antworten