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
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í).
which gcc
dar?