2 votos

Instalar gcc en Mac a través de Terminal

He instalado Xcode y las herramientas de línea de comandos desde el sitio web de desarrolladores de Mac, lo cual 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 realizó sin problemas hasta que escribo:

hash gcc

Cuando presiono enter, recibo el siguiente mensaje de error:

-bash: hash: gcc: no encontrado

Estoy confundido y no sé cómo proceder para instalar gcc correctamente en mi Mac (que está ejecutando Mac OS X 10.9.1).

Le agradezco de antemano cualquier sugerencia y/o alternativas para instalar el gcc

6voto

Oskar Puntos 1242

Es posible que sea mejor instalar gcc desde homebrew que desde Macports.

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

Hay aproximadamente 6 versiones de gcc disponibles en este gestor de paquetes. Consulta http://brew.sh para 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 de gcc en tu terminal es similar a este hilo: Instalé Xcode pero aún no tengo gcc en mi terminal

1voto

Zachary Kraus Puntos 124

Puede haber dos problemas. Un problema es tu ruta. Necesitas tener /opt/local/bin delante de /usr/bin actualmente tienes /opt/local/bin detrás de /usr/bin. Debido a esto, es probable que g++ siga enlazando a clang.

El otro problema es que estás utilizando mal el comando de selección de puerto. El comando de selección de puerto automáticamente hace que un flag de g++ se enlace con el 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 están en esta página web http://dropbit.com/?p=84.

-1voto

Josh Puntos 38617

No creo que tu comando de selección de puerto haya hecho lo que esperabas. El manual establece que el comando de selección selecciona entre múltiples versiones de un puerto versionado, lo cual creo que no es tu caso aquí:

pejvan$ port help select
Uso: select --list --set --show --summary 

Selecciona entre múltiples versiones de un puerto versionado

Esto te permite elegir qué versión, entre varias versiones instaladas de un puerto, se considera primaria. Lo que esto significa es qué versión se convierte en la que la mayoría consideraría la predeterminada, por ejemplo, la que se ejecuta sin especificar ninguna versión.

Después de ejecutar con éxito el comando de instalación para gcc (en este caso, la versión 4.9):

sudo port install gcc49

Puedes verificar que tienes 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 puedes 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 deseas reemplazar (temporal o permanentemente) el compilador clang por gcc, puedes hacerlo estableciendo la variable de entorno CC de la siguiente manera, por ejemplo:

export CC=/opt/local/bin/gcc-mp-4.9 # establecer GCC como compilador C predeterminado

Como nota adicional, ten en cuenta que para que funcione port select gccVersion, necesitarás instalar gcc_select:

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

Descripción:          gcc_select instala archivos que permiten que 'port select' cambie la versión predeterminada de gcc. Crea enlaces simbólicos de los ejecutables del compilador estándar en
                      el prefijo de MacPorts a la versión seleccionada.

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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X