2012-09-04 4 views
31

essayé d'installer une pierre précieuse sur Mountain Lion et faire n'a pas pu trouver gcc-4.2:OS X Mountain Lion: gcc-4.2 Aucun fichier ou répertoire

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 

Répondre

89

Si vous avez installé Xcode, gcc devrait être disponible. Vérifiez où il est avec:

kamil$ which gcc 
/usr/bin/gcc 

Puis faire un lien symbolique espace utilisateur de gcc-4.2 à gcc simple:

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

(Vérifiez que le dossier bind-terrestre utilisateur est dans votre chemin via export PATH=...:$HOME/bin dans votre .bash_profile ou .zshrc.)

Gem installé bien après.

+2

Cela me saute aux yeux pourquoi cela n'est pas défini par défaut lorsque vous installez Outils de ligne de commande. J'ai passé tellement de temps à essayer d'obtenir ce travail et finalement trouvé votre réponse. Est-ce un problème Ruby ou un problème Xcode où ces opérations échouent même avec gcc installé? –

+0

Si vous obtenez une erreur 'permission denied' lorsque vous essayez d'exécuter 'ln -s/usr/bin/gcc /usr/bin/gcc-4.2' 1) exécutez 'sudo chmod 755/usr/bin/gcc' 2) run 'sudo ln -s/usr/bin/gcc /usr/bin/gcc-4.2' – ATSiem

+1

le problème est que la version gcc ne peut pas réellement être 4.2. Cela fonctionnera comme un travail, mais cela semble être une solution vraiment hacky. Il serait probablement préférable d'installer la bonne version de gcc avec homebrew comme le suggère @Piioo. – caspian311

14

Installez simplement apple-gcc42 avec infusion. Il génère gcc-4.2. Par conséquent, nous n'avons pas besoin de liens symboliques que la mise à jour Apple peut supprimer.

Homebrew

1

Comme @Artur Bodera mentionné OSX moderne refusera de vous permettre de créer le lien symbolique dans les systèmes/bin.

Pour éviter cela tout simplement créer le lien vers votre dossier bin utilisateurs

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

Ne pas oublier d'ajouter le dossier bin à votre .zshrc ou .bash_profile - par exemple

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$HOME/bin 
+0

la première commande me donne une - opération non autorisée. et actuellement mon .bash_profile a - export PATH = "/ usr/local/bin: $ PATH". Est-ce que la mise à jour serait sûre? Je suis sur OSX 10.12.4 –

Questions connexes