2 votos

Instalar gcc a mac a través de la Terminal

He instalado Xcode y las herramientas de línea de comandos de la página web de Mac Developers, que he leído unas cuantas veces es un requisito previo. También he instalado el programa MacPorts. En terminal:

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

Todo lo anterior fue sin problemas hasta que escribí:

hash gcc

Cuando presiono enter, recibo el siguiente mensaje de error:

-bash: hash: gcc: no encontrado

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

Muy agradecido a cualquier sugerencia y/o alternativa a la instalación del gcc

6voto

Oskar Puntos 1242

Tal vez sea mejor que instales GCC de homebrew que Macports.

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

Hay unas 6 versiones de GCC disponibles en este gestor de paquetes. Ver http://brew.sh para obtener más detalles sobre las herramientas caseras. También 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 su caparazón es similar a este hilo: Instalé Xcode pero todavía no tengo GCC en mi terminal.

1voto

Zachary Kraus Puntos 124

Podrían ser dos problemas. Un problema es su camino. Necesitas tener la /opt/local/bin delante de la /usr/bin actualmente tienes la /opt/local/bin detrás de la /usr/bin. Debido a esto, g++ probablemente todavía está enlazado a clang.

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

-1voto

Josh Puntos 38617

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 múltiples versiones de un puerto versionado que creo que es no tu 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 con éxito el comando de instalación para gcc (aquí la 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

Entonces puedes ejecutar GCC con el camino completo 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 sustituir (de forma temporal o permanente) el complier de clang por gcc, puede hacerlo configurando el CC env var de la 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 el port select gccVersion para trabajar, necesitarás 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 port install gcc o sólo con varias versiones diferentes de paquetes gcc instalados en port.

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