2015-01-06 10 views
7

Ich habe versucht, Mac OSX Yosemite zu GCC anstelle von clang zu bekommen, wenn cc aufgerufen wird, aber egal was ich tue, es weigert sich zu spielen. Ich habe bereits versucht, mein bash_profile/bashrc zu ändern und sogar den Symlink neu zu verknüpfen, aber ohne Erfolg - jedes Mal, wenn ich "cc" anrufe, läuft immer noch der Clam. Ich versuche es zu zwingen, stattdessen gcc zu sein (und nein, gcc einfach anrufen ist keine Option).Set cc zu gcc statt clang auf OSX Yosemite

Ich habe zuvor eine ähnliche Frage gestellt (Make gcc default c compiler on Yosemite/disable clang).

+1

Ich bin immer interessiert, wenn Leute sagen, dass sie gcc über Klänge benutzen wollen - haben Sie ideologische Gründe oder ein anderes Ziel vor Augen? –

+1

Nein, ich muss nur eine sehr obskure Software ausführen, die gcc annimmt, aber nicht mit clang laufen kann. – Hendrik

+3

In XCode 6 ist der 'gcc' ein Link zu' clang', nicht der echte 'gcc'. Sie müssten einen benutzerdefinierten Build von GCC in einer bestimmten Form oder Form erstellen und dann die Verknüpfungen ändern (und riskieren, dass sie geändert werden, wenn Sie XCode aktualisieren und die Befehlszeilentools erneut installieren). –

Antwort

6

Sie sollten dies nicht tun. Viele Tools verlassen sich auf die Installations-Binärdateien, um auf das zu zeigen, was sie sollten. Eine weitere Option besteht darin, die Umgebungsvariable CC auf gcc zu setzen und die Kompilierung mit $CC ... anstelle von cc ... aufzurufen; Diese Umgebungsvariable wird auch beim Erstellen von Paketen über configure (Autotools) oder cmake erfasst.

Dies ist auch ein kompatibles Ansatz mit MacPorts Versionen von gcc (wie die viel mehr auf gcc-4.9.2 bis heute), die mit aufgebaut werden kann: sudo port select --set gcc mp-gcc49

+0

Ich habe versucht, Umgebungsvariablen einzustellen und es hat nicht funktioniert. Das ist auch kein Fall, in dem ich cc oder gcc manuell anrufe oder irgendeine Kontrolle darüber habe, was aufgerufen wird. Deshalb versuche ich, cc dazu zu bringen, einfach gcc auszuführen. – Hendrik

+0

@Hendrik - Ich nehme an, Sie könnten versuchen, einen Alias ​​einzurichten, z. B. 'alias cc =" gcc "' (bash) oder 'alias cc 'gcc'' ([t] csh). Aber das ist auch [problematisch] (http://unix.stackexchange.com/questions/1496/why-doesnt-my-bash-script-recognize-aliases). –

+0

Beachtet die Software mindestens 'PATH'? Du könntest versuchen, ihm eine Umgebung zu geben, die nur gcc kennt (und nicht klingelt) – sapi

9

weder OS X noch Xcode kommt mit echten GCC. Aus Gründen der Kompatibilität mit Skripten, die davon ausgehen, dass der Compiler "gcc" heißt, gibt es ausführbare Dateien mit diesem Namen, aber sie sind alle Fronten für Clang. Keine Menge an Symlinking, das Setzen von Umgebungsvariablen oder das Einrichten von Aliasen erlaubt es diesen ausführbaren Programmen, echten GCC auszuführen.

Wenn Sie GCC möchten, müssen Sie es installieren. Sie können das mit einem der Paket-Manager tun, wie MacPorts (dem, den ich kenne). Ich bin sicher, dass Sie auch Homebrew verwenden könnten.

Sie sollten nichts in/usr/bin ändern. Wenn Sie dies bereits getan haben, sollten Sie, falls möglich, wiederherstellen, was Sie geändert haben.

Gut erzogene Paketmanager werden dieses Verzeichnis auch nicht ändern. Sie sollten in einem separaten Verzeichnis wie/opt/local/bin,/usr/local/bin oder Ähnlichem installiert werden. In diesem Fall müssen Sie Ihre PATH ändern, um diese Verzeichnisse vor/usr/bin zu speichern.

Verwandte Themen