Eu instalei o Xcode e as ferramentas de linha de comando do site de desenvolvedores do Mac, que li algumas vezes é um pré-requisito. Também instalei o programa MacPorts. No terminal:

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

Tudo acima correu bem até eu digitar:

hash gcc

Quando pressiono Enter, recebo a seguinte mensagem de erro:

-bash: hash: gcc: não encontrado

Estou perdido e não saber como proceder para instalar com sucesso o gcc no meu Mac (que está executando o Mac OS X 10.9.1).

Muito obrigado a todas as sugestões e / ou alternativas para instalar o gcc

Comentários

  • Há algum motivo para você precisar do gcc especificamente? clang usa a mesma sintaxe, compila mais rápido e gera código mais rápido. Os principais bugs foram eliminados nos últimos anos.
  • Uma edição ajudaria nisso. Se você tiver um pacote que precisa compilar, liste-o. Se você quer apenas saber como fazer o gcc compilar apenas para se divertir, ' também está bom, mas a resposta para qualquer um é diferente.
  • O que significa which gcc dar?
  • Você verificou sua variável de caminho em seu ~ / .profile? Deve apontar para o diretório em que o gcc está localizado.
  • O que; s -l / opt / local / bin / gcc * mostra?

Resposta

Talvez seja melhor instalar o gcc a partir do homebrew do que o Macports.

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

Existem cerca de 6 versões do gcc disponíveis neste gerenciador de pacotes. Veja http://brew.sh para mais detalhes sobre as ferramentas de homebrew. Além disso, este tópico tem mais detalhes sobre gcc e homebrew: Como faço para instalar o GCC via Homebrew? Por último, o erro gcc em seu shell é semelhante a este tópico: Eu instalei o Xcode, mas ainda não ' tenho gcc em meu terminal

Comentários

  • Por que isso seria melhor do que macports?

Resposta

Podem haver dois problemas. Um deles é o seu caminho. Você precisa ter / opt / local / bin na frente de / usr / bin atualmente você tem / opt / local / bin atrás de / usr / bin. Por causa disso, o g ++ provavelmente ainda está vinculado ao clang.

O outro problema é que você está usando o comando de seleção de porta errado. comando select cria automaticamente um g ++ fl link ag para o compilador especificado. Neste caso, o compilador especificado deve ser mp-4.8 e deve ser –set em vez de -set. As instruções estão nesta página da web http://dropbit.com/?p=84 .

Resposta

Não acho que o comando de seleção de porta fez o que você esperava. O manual afirma que o comando de seleção seleciona entre várias versões de uma porta com versão , que acredito não seu caso aqui:

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. 

Depois de executar com sucesso o comando de instalação do gcc (aqui versão 4.9):

sudo port install gcc49

Você pode verificar se “tem os binários do gcc instalados:

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 

Você pode então executar o gcc com o caminho completo para os binários:

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 você deseja substituir (temporariamente ou permanentemente) o complier clang pelo gcc, você pode fazer isso configurando o CC env var o seguinte forma, por exemplo:

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

Como observação lateral, por favor observe que para port select gccVersion funcionar, você precisará instalar 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. 

Eu não olhei os detalhes do pacote, então não tenho certeza se funcionaria entre o clang e o gcc instalado no port ou apenas com várias versões diferentes de pacotes gcc instalados no port.

Comentários

  • Apenas entre pacotes gcc e seleção de porta deve ter funcionado
  • Isso ' s o que eu disse na primeira frase, companheiro.
  • (MAS você precisa instalar o pacote gcc_select, o que não parece ser o caso aqui).

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *