2012-09-04 24 views
31

intentado instalar una joya en el león de montaña y hacer que no pudo encontrar gcc-4.2:OS X Mountain Lion: gcc-4.2 No existe el fichero o directorio

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 

Respuesta

89

Si tiene instalado Xcode, gcc debe haber disponible. Compruebe donde se encuentra con:

kamil$ which gcc 
/usr/bin/gcc 

a continuación, hacer un enlace simbólico de usuario en tierra, a gcc-4.2 a gcc claro:

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

(Asegúrese de que la carpeta se unen fácil de la tierra está en su camino a través de export PATH=...:$HOME/bin en su .bash_profile o .zshrc.)

Gema bien instalada después.

+2

Me sorprende por qué esto no está configurado por defecto cuando instala Command Line Tools. He pasado tanto tiempo tratando de hacer este trabajo y finalmente encontré tu respuesta. ¿Es este un problema de Ruby o un problema de Xcode donde estas operaciones fallan incluso con gcc instalado? –

+0

Si obtiene un error de 'permiso denegado' cuando intenta ejecutar 'ln-usr/bin/gcc /usr/bin/gcc-4.2' 1) ejecute 'sudo chmod 755/usr/bin/gcc' 2) ejecuta 'sudo ln-usr/bin/gcc /usr/bin/gcc-4.2' – ATSiem

+1

El problema con esto es que la versión de gcc puede no ser realmente 4.2. Funcionará como un trabajo alternativo, pero esto parece una solución realmente hacky. Probablemente sería mejor instalar la versión correcta de gcc con homebrew como sugiere @Piioo. – caspian311

14

Instale simplemente apple-gcc42 con cerveza. Genera gcc-4.2.

brew install apple-gcc42 

Así que no necesitamos enlaces simbólicos, que Apple update puede eliminar.

Homebrew

1

Como se mencionó @Artur Bodera moderna OSX se niegan a dejar que se crea el enlace simbólico en la carpeta de los sistemas/bin.

Para evitar esto basta con crear el enlace simbólico a la carpeta bin usuarios

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

No se olvide de agregar la carpeta bin a la .zshrc o .bash_profile - por ejemplo,

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

el primer comando me da una - operación no permitida. y actualmente mi .bash_profile tiene - exportar PATH = "/ usr/local/bin: $ PATH". ¿La actualización sería segura? Estoy en OSX 10.12.4 –

Cuestiones relacionadas