He instalado Xcode y las herramientas de línea de comandos del sitio web de desarrolladores de Mac, que he leído varias veces es un requisito previo. También instalé el programa MacPorts. En la terminal:

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

Todo lo anterior se desarrolló sin problemas hasta que escribo:

hash gcc

Cuando presiono enter, aparece el siguiente mensaje de error:

-bash: hash: gcc: not found

Estoy perdido y no sé cómo proceder para instalar correctamente gcc en mi Mac (que ejecuta Mac OS X 10.9.1).

Muy agradecido por cualquier sugerencia o alternativa a la instalación de gcc

Comentarios

  • ¿Alguna razón por la que necesita gcc específicamente? clang usa la misma sintaxis, compila más rápido y genera código más rápido. Los errores principales se han solucionado en los últimos años.
  • Una edición ayudaría a esto. Si tiene un paquete que necesita compilar, indíquelo. Si solo quiere saber cómo hacer que gcc compile por el gusto de hacerlo, ‘ también está bien, pero la respuesta a cualquiera de las dos es diferente.
  • ¿Qué significa which gcc dar?
  • ¿Verificó su variable de ruta en su ~ / .profile? Debe apuntar al directorio en el que se encuentra gcc.
  • ¿Qué muestra; s -l / opt / local / bin / gcc *?

Respuesta

Puede que sea mejor instalar gcc desde homebrew que Macports.

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

Hay alrededor de 6 versiones de gcc disponibles en este administrador de paquetes. Consulte http://brew.sh para obtener más detalles sobre las herramientas de homebrew. Además, este hilo tiene más detalles sobre gcc y homebrew: ¿Cómo instalo GCC a través de Homebrew? Por último, el error gcc en tu shell es similar a este hilo: Instalé Xcode pero todavía no ‘ t tengo gcc en mi terminal

Comentarios

  • ¿Por qué sería mejor que macports?

Respuesta

Pueden haber dos problemas. Un problema es su ruta. Necesita tener / opt / local / bin delante de / usr / bin actualmente tiene / opt / local / bin detrás de / usr / bin. Debido a esto, es probable que g ++ todavía esté vinculando a clang.

El otro problema es que está utilizando el comando de selección de puerto incorrectamente. El puerto el comando select automáticamente hace un g ++ fl ag enlace a su compilador especificado. En este caso, el compilador especificado debería ser mp-4.8 y debería ser –set en lugar de -set. Las instrucciones se encuentran en esta página web http://dropbit.com/?p=84 .

Respuesta

No creo que su comando de selección de puerto haya hecho lo que esperaba. El manual establece que el comando de selección selecciona entre varias versiones de un puerto versionado , que creo que es no su caso aquí:

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. 

Después de ejecutar correctamente el comando de instalación para gcc (aquí versión 4.9):

sudo port install gcc49

Puede verificar que «tiene los binarios de 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 

Luego puede ejecutar gcc con la ruta completa a los binarios:

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. 

Si desea reemplazar (temporal o permanentemente) el compilador de clang por gcc, puede hacerlo configurando CC env var lo siguiente manera por ejemplo:

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

Como nota al margen, por favor tenga en cuenta que para que funcione port select gccVersion, deberá 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. 

No he mirado los detalles del paquete, así que no estoy seguro de si funcionaría entre clang y el puerto instalado gcc o solo con varias versiones diferentes de los paquetes de puerto instalados gcc.

Comentarios

  • Solo entre los paquetes gcc y la selección de puerto debería haber funcionado
  • Eso ‘ s lo que dije en la primera oración, amigo.
  • (PERO necesitas instalar el paquete gcc_select, que no parece ser el caso aquí).

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *