2012-09-04 6 views
31

Versucht, ein Juwel auf Mountain Lion zu installieren und nicht gcc-4.2 finden machen könnte:OS X Mountain Lion: gcc-4.2 Keine solche Datei oder das Verzeichnis

kamil$ gem install posix-spawn -v '0.3.6' 
Building native extensions. This could take a while... 
ERROR: Error installing posix-spawn: 
    ERROR: Failed to build gem native extension. 

     /Users/kamil/.rbenv/versions/1.9.3-p0/bin/ruby extconf.rb 
creating Makefile 

make 
compiling posix-spawn.c 
make: gcc-4.2: No such file or directory 
make: *** [posix-spawn.o] Error 1 

Antwort

89

Wenn Sie Xcode installiert haben, sollten gcc sein verfügbar. Prüfen Sie, wo es ist, mit:

kamil$ which gcc 
/usr/bin/gcc 

Dann ein benutzer Land symbolischen Link von gcc-4.2 machen Ebene gcc:

kamil$ sudo ln -s ~/bin/gcc /usr/bin/gcc-4.2 

(Sicherstellen, dass der Benutzer-Land binden Ordner in Ihrem Weg über export PATH=...:$HOME/bin ist in Ihrem .bash_profile oder .zshrc.)

Gem installiert gut danach.

+2

Es ist mir schleierhaft, warum dies nicht standardmäßig bei der Installation von Befehlszeilen-Tools festgelegt ist. Ich habe so viel Zeit damit verbracht, diese Arbeit zu bekommen, und bin schließlich auf deine Antwort gestoßen. Ist dies ein Ruby-Problem oder ein Xcode-Problem, bei dem diese Vorgänge fehlschlagen, obwohl gcc installiert ist? –

+0

Wenn Sie den Fehler "Berechtigung verweigert" erhalten, wenn Sie versuchen, 'ln -s/usr/bin/gcc /usr/bin/gcc-4.2' auszuführen 1) Führen Sie 'sudo chmod 755/usr/bin/gcc' aus 2) Führen Sie 'sudo ln -s/usr/bin/gcc/usr/bin/gcc-4, 2' – ATSiem

+1

Das Problem damit ist, dass die GCC-Version nicht wirklich 4.2 sein kann. Es wird funktionieren, aber das scheint eine wirklich hacky Lösung zu sein. Es wäre wahrscheinlich besser, die richtige Version von gcc mit Homebrew zu installieren, wie es @Piioo vorschlägt. – caspian311

14

Installieren Sie einfach Apple-GCC42 mit brühen. Es erzeugt gcc-4.2.

brew install apple-gcc42 

So brauchen wir keine Symlinks, die Apple Update möglicherweise entfernen.

Homebrew

1

Wie @Artur Bodera moderne OSX erwähnt wird sich weigern Sie den Symlink in den Systemen/bin-Ordner lassen erstellen.

Um dies zu vermeiden einfach den Symlink an die Benutzer Binärordner

ln -s ~/bin/gcc /usr/bin/gcc-4.2 

Vergessen Sie schaffen nicht den Ordner bin auf Ihre .zshrc oder .bash_profile hinzufügen - z.B.

+0

der erste Befehl gibt mir eine - Operation nicht erlaubt. und zur Zeit hat mein .bash_profile - Export PATH = "/ usr/local/bin: $ PATH". Würde das Aktualisieren sicher sein? Ich bin auf OSX 10.12.4 –