Installa gcc su mac tramite Terminale

2

Ho installato Xcode e gli strumenti da riga di comando dal sito Web di Mac Developers, che ho letto poche volte è un prerequisito. Ho anche installato il programma MacPorts. Nel terminale:

sudo port install gcc48
sudo port select -set gcc mp-gcc48

Tutto quanto sopra è andato liscio fino a quando digito:

hash gcc

Quando premo invio, visualizzo il seguente messaggio di errore:

-bash: hash: gcc: non trovato

Sono in perdita e non so come procedere per installare correttamente gcc sul mio Mac (che esegue Mac OS X 10.9.1).

Molto obbligato a qualsiasi suggerimento o alternativa all'installazione di gcc

    
posta user3239031 27.01.2014 - 06:59
fonte

3 risposte

6

Potrebbe essere meglio installare gcc da homebrew che Macports.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew doctor
brew update
brew search gcc

Ci sono circa 6 versioni di gcc disponibili da questo gestore di pacchetti. Vedi link per maggiori dettagli sugli strumenti homebrew. Anche questo thread ha maggiori dettagli su gcc e homebrew: Come installo GCC via Homebrew? Infine, l'errore gcc nella shell è simile a questo thread: Ho installato Xcode ma continuo a indossare avere gcc nel mio terminale

    
risposta data 27.01.2014 - 07:18
fonte
1

Potrebbero esserci due problemi. Un problema è il tuo percorso. È necessario avere / opt / local / bin davanti a / usr / bin attualmente si ha / opt / local / bin dietro / usr / bin. A causa di questo g ++ probabilmente sta ancora collegando a clang.

L'altro problema è che stai usando il comando di selezione della porta sbagliato. Il comando port select fa automaticamente un flag flag g ++ al compilatore specificato. In questo caso il compilatore specificato dovrebbe essere mp-4.8 e dovrebbe essere --set anziché -set. Le indicazioni sono su questo link .

    
risposta data 23.09.2014 - 07:15
fonte
-1

Non penso che il tuo comando di selezione delle porte abbia fatto quello che ti aspettavi. Il manuale indica che il comando select seleziona tra più versioni di una porta con versione , che credo sia not il tuo caso qui:

pejvan$ port help select
Usage: select --list --set --show --summary <arguments>

Select between multiple versions of a versioned port

This allows you to choose which version, among several installed versions
of a port, is to be considered primary.  What this means is which version
becomes the one most would consider the default, e.g. the one run without
specifying any version.

Dopo aver eseguito correttamente il comando install per gcc (qui versione 4.9):

sudo port install gcc49

Puoi verificare di aver installato i file binari di gcc:

pejvan$ ls -l /opt/local/bin/gcc*
-rwxr-xr-x  2 root  admin    42912  3 Jun 03:44 /opt/local/bin/gcc-ar-mp-4.9
-rwxr-xr-x  3 root  admin  1082788  3 Jun 03:44 /opt/local/bin/gcc-mp-4.9
-rwxr-xr-x  2 root  admin    42992  3 Jun 03:44 /opt/local/bin/gcc-nm-mp-4.9
-rwxr-xr-x  2 root  admin    43000  3 Jun 03:44 /opt/local/bin/gcc-ranlib-mp-4.9

Puoi quindi eseguire gcc con il percorso completo ai binari:

pejvan$ gcc-mp-4.9 --version
gcc-mp-4.9 (MacPorts gcc49 4.9-20140416_2) 4.9.0 20140416 (prerelease)
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Se vuoi sostituire (temporaneamente o permanentemente) il compilatore clang di gcc, puoi farlo impostando il CC env var nel modo seguente, ad esempio:

export CC=/opt/local/bin/gcc-mp-4.9 # set GCC as default C compiler

Come nota a margine, tieni presente che affinché port select gccVersion funzioni, devi installare gcc_select :

pejvan$ port info gcc_select
gcc_select @0.1_8 (sysutils)

Description:          gcc_select installs files that allow 'port select' to switch the default version of gcc. It symlinks the standard compiler executables in
                      the MacPorts prefix to the selected version.

Non ho guardato i dettagli del pacchetto, quindi non sono sicuro se funzionerebbe tra clang e port gcc installato o solo con diverse versioni di pacchetti gcc installati sulla porta.

    
risposta data 15.06.2014 - 20:35
fonte

Leggi altre domande sui tag