wake-up-neo.net

Aktualisieren Sie GCC unter OSX

Ich bin also ein neuer Programmierer und habe gerade XCode auf meinem Macbook installiert, um das GCC zu erhalten. Ich denke, Xcode ist der einzige Weg, um GCC unter OSX zu bekommen. Wenn ich jetzt meine Hello World-Anwendung in C++ ausführe, wird g ++ als Version 4.0.1 angezeigt, aber wenn ich nach Befehlen suche, die mit g beginnen, sehe ich auch g ++ - 4.2. Gibt es eine Möglichkeit, 4.2 anstelle von 4.0.1 als Standard festzulegen, und gibt es auch eine Möglichkeit, gcc auf die neueste Version 4.4.0 zu aktualisieren?

BEARBEITEN: Ok, ich habe macports und gcc4.4 installiert und es wird auf dem Terminal als gcc-mp-4.4 angezeigt. Wie kann ich es mit gcc_select als Standard festlegen? Vielen Dank.

60
Karan Bhamra

Wenn Sie Macports installieren, können Sie gcc select installieren und anschließend Ihre gcc-Version auswählen.

/opt/local/bin/port install gcc_select

Um Ihre Versionen zu sehen, verwenden Sie

port select --list gcc

Um eine Version auszuwählen, verwenden Sie

Sudo port select --set gcc gcc40
61
Milhous

Ich weiß, dass es eine alte Bitte ist. Aber es könnte für manche immer noch nützlich sein. Bei aktuellen Versionen von MacPorts können Sie die Standard-GCC-Version mit dem Befehl port auswählen. Um die verfügbaren Versionen von gcc aufzulisten, verwenden Sie:

$ Sudo port select --list gcc

Available versions for gcc:
gcc42
llvm-gcc42
mp-gcc46
none (active)

So setzen Sie gcc auf die MacPorts-Version:

$ Sudo port select --set gcc mp-gcc46

36
Briand06

Ich komme nur, um zu sagen, dass es eine schreckliche, nicht gute, schreckliche Idee ist, einen weichen Link zu verwenden, um dies zu erreichen.

Eines der wichtigsten Dinge beim Schreiben von Software ist die Reproduzierbarkeit - Sie möchten jedes Mal die gleichen Ergebnisse erzielen. Diese Systeme sind so komplex, dass Sie alle unsichtbaren Fehlerquellen reduzieren möchten.

Ein Softlink ist eine unsichtbare Fehlerquelle. Es ist die Art von Dingen, die Sie in einem Monat vergessen, dann auf einen anderen Computer wechseln und sich fragen, warum Sie unterschiedliche Ergebnisse erzielen - oder Sie werden versuchen, Ihr System zu aktualisieren, und Sie werden seltsame Fehler bekommen, weil dies nicht der Fall ist Ich erwarte dort einen Softlink.

Darüber hinaus ist nicht garantiert, dass dies funktioniert. Insbesondere ist nicht klar, ob Sie die richtigen System-Include-Dateien erhalten, die sich zwischen den Iterationen von gcc sicherlich geändert haben.

gcc_select ist eine systematische Methode, um das Gleiche zu tun, die vorhersehbar funktioniert. Im schlimmsten Fall können Sie einen Fehlerbericht einreichen und einen eventuellen Fix erhalten oder ihn selbst reparieren.

Leider hat :-( gcc_select keinen Einfluss darauf, welchen Compiler XCode verwendet. Es ist also nicht der richtige Weg, wenn Sie in XCode arbeiten müssen (was ich auch tue). Ich weiß immer noch nicht, wie das aussehen könnte.

13
Tom Swirly

Das folgende Rezept mit Homebrew funktionierte für mich, um auf gcc/g ++ 4.7 zu aktualisieren:

$ brew tap SynthiNet/synthinet
$ brew install gcc47

Fand es in einem Beitrag hier .

2
Juan A. Navarro

benutze "gcc_select -l"

> gcc_select -l

gcc40 mp-gcc44

> gcc_select mp-gcc44

2
user252445

im /usr/bin Art

Sudo ln -s -f g++-4.2 g++

Sudo ln -s -f gcc-4.2 gcc

Das sollte es tun.

1
peter

Sie können mehrere Versionen von GCC auf Ihrer Box haben, um die Version auszuwählen, die Sie verwenden möchten. Rufen Sie sie mit vollem Pfad auf, z. anstatt g++ verwende den vollständigen Pfad /usr/bin/g++ auf der Kommandozeile (hängt davon ab, wo Ihr GCC wohnt).

Beim Kompilieren von Projekten kommt es darauf an, welches System Sie verwenden. Ich bin mir nicht sicher, was Xcode angeht (ich bin mit der Standard-atm zufrieden), aber wenn Sie Makefiles verwenden, können Sie GXX =/usr/bin/g ++ und so weiter setzen.

[~ # ~] edit [~ # ~]

Es gibt jetzt ein xcrun Skript, das abgefragt werden kann, um die entsprechende Version der Build-Tools auf dem Mac auszuwählen. Außer, abgesondert, ausgenommen man xcrun Ich habe diese Erklärung über Xcode und Kommandozeilen-Tools gegoogelt, die ziemlich genau zusammenfasst, wie man es benutzt.

1
stefanB