2012-09-04 14 views
31

provato ad installare una gemma su Mountain Lion e fare non riusciva a trovare gcc-4.2:OS X Mountain Lion: gcc-4.2 Nessun file o directory

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 

risposta

89

Se avete installato Xcode, gcc dovrebbe essere a disposizione. Controllare dove si trova con:

kamil$ which gcc 
/usr/bin/gcc 

poi fare un link simbolico user-terra da gcc-4.2 a gcc pianura:

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

(Verificare la cartella utente-land bind è nel tuo percorso via export PATH=...:$HOME/bin nel tuo .bash_profile o .zshrc.)

Gem installato successivamente.

+2

Mi dà fastidio perché questo non è impostato di default quando si installano gli strumenti della riga di comando. Ho passato così tanto tempo a cercare di ottenere questo lavoro e alla fine ho trovato la tua risposta. Si tratta di un problema di Ruby o di Xcode in cui queste operazioni falliscono anche con gcc installato? –

+0

Se si verifica un errore di 'autorizzazione negata' quando si tenta di eseguire 'ln -s/usr/bin/gcc /usr/bin/gcc-4.2' 1) eseguire 'sudo chmod 755/usr/bin/gcc' 2) eseguire 'sudo ln -s/usr/bin/gcc /usr/bin/gcc-4.2' – ATSiem

+1

Il problema con questo è che la versione gcc potrebbe non essere effettivamente 4.2. Funzionerà come una soluzione ma questa sembra una soluzione davvero hacky. Probabilmente sarebbe meglio installare effettivamente la versione corretta di gcc con homebrew come suggerisce @Piioo. – caspian311

14

Installare semplicemente apple-gcc42 con brew. Genera gcc-4.2.

brew install apple-gcc42 

Quindi non abbiamo bisogno di collegamenti simbolici, che l'aggiornamento di Apple potrebbe rimuovere.

Homebrew

1

Come @Artur Bodera menzionato OSX moderna si rifiuta di lasciare che si crea il link simbolico nella cartella sistemi/bin.

Per evitare questo semplicemente creare il link simbolico alla cartella bin utenti

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

Non dimenticare di aggiungere la cartella bin al .zshrc o .bash_profile - per esempio

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

il primo comando mi dà un'operazione non consentita. e attualmente il mio .bash_profile ha - export PATH = "/ usr/local/bin: $ PATH". L'aggiornamento sarebbe sicuro? Sono su OSX 10.12.4 –

Problemi correlati