Estoy usando Homebrew exclusivamente (es decir, no uso ni usaré MacPorts o Fink). También quiero mantener las instalaciones manuales al mínimo. 1
… Pero, ¿cómo puedo instalar GCC?
En primer lugar, por supuesto, instalé Xcode, pero la versión actual no se envía con un GCC decentemente actualizado (necesito al menos 4.5, pero preferiría el más reciente). De hecho, no se envía. con un GCC adecuado (solo envía Clang) y eso parece ser un problema para Homebrew...
Conozco una lista de compiladores cruzados y GCC personalizados, pero, de hecho, todas esas instalaciones requieren un GCC ya instalado; al menos, brew
fallar con errores de vinculación en Lion que atribuyo a Clang, y -use-gcc
no funciona por obvio. razones.
brew doctor
solo menciona lo que ya sé, que no hay GCC (4.2.x) instalado.
1 Previamente mezclé MacPorts, Homebrew y algunas instalaciones manuales y terminé con un infierno de mantenimiento y control de versiones. No quiero ir allí de nuevo.
Vi a alguien vincular a esta publicación anterior hoy. La mejor manera de instalar GCC en homebrew en este momento es simplemente brew install gcc
. Si tiene instaladas las herramientas de línea de comandos de XCode (son independientes de XCode; puede instalarlas con xcode-select --install
), se instalará una versión precompilada (que es muy rápida).
xcode-select --install
y arroja xcode-select: error: command line tools are already installed, use "Software Update" to install updates
. Luego enumero las actualizaciones de software ejecutando softwareupdate -l
y no arroja nada para actualizar (una lista vacía), lo que significa que las herramientas de línea de comandos XCode están instaladas.Para responder a mi propia pregunta, ahora tiene una fórmulahomebrew-versions
bastante actualizada de GCC . Se puede instalar usando
brew install [flags] https://raw.github.com/Homebrew/homebrew-versions/gcc48.rb
Donde [flags]
debe incluir todos los idiomas requeridos, por ejemplo ( --enable-cxx --enable-fortran
).
Esto instalará los ejecutables con un sufijo, es decir, gcc
se debe acceder a ellos gcc-version
para evitar conflictos. Si es necesario, se pueden crear enlaces simbólicos apropiados para que esta versión sea la predeterminada.
Alternativamente , un GCC actualizado (en el momento de escribir este artículo) se puede compilar manualmente usando el siguiente script de shell:
VERSION=4.7.0
PREFIX=/usr/gcc-$(VERSION)
LANGUAGES=c,c++,fortran
MAKE=make
# Or
# MAKE='make -j 4' # to compile using four cores
brew-path() { brew info $1 | head -n3 | tail -n1 | cut -d' ' -f1; }
# Prerequisites
brew install gmp
brew install mpfr
brew install libmpc
# Download & install the latest GCC
mkdir -p $PREFIX
mkdir temp-gcc
cd temp-gcc
wget ftp://ftp.gnu.org/gnu/gcc/gcc-$VERSION/gcc-$VERSION.tar.gz
tar xfz gcc-$VERSION.tar.gz
rm gcc-$VERSION.tar.gz
cd gcc-$VERSION
mkdir build
cd build
../configure \
--prefix=$PREFIX \
--with-gmp=$(brew-path gmp) \
--with-mpfr=$(brew-path mpfr) \
--with-mpc=$(brew-path libmpc) \
--program-suffix=-$VERSION \
--enable-languages=$LANGUAGES \
--with-system-zlib \
--enable-stage1-checking \
--enable-plugin \
--enable-lto \
--disable-multilib
$MAKE bootstrap
make install
# Uncomment for cleanup …
# cd ../../..
# rm -r temp-gcc
Esto colocará a GCC en la ruta /usr/gcc-4.7.0
. Ahora todo lo que necesita hacer es crear enlaces simbólicos a los ejecutables o agregar el bin
directorio a la $PATH
variable.
brew tap homebrew/dupes
seguido de brew install apple-gcc42
. Esto me ayudó a obtener un gcc y un vino que funcionaran. También puede obtener los archivos binarios (como lo hace homebrew) desde aquí: r.research.att.com/toolsbrew tap homebrew/dupes; brew install gcc --use-llvm
. Consulte github.com/Homebrew/homebrew-dupes/issues/20La solución proporcionada por @Konrad Rudolph ya no es del todo correcta, ya que la fórmula GCC que mencionó se movió de homebrew/dupes
a homebrew/versions
. Puede elegir qué versión de GCC instalar. Por ejemplo, al momento de escribir esta respuesta, están disponibles las versiones 4.5, 4.7 y 4.8. Puede comprobar qué versiones están disponibles aquí .
En resumen, puede instalar GCC 4.8 usando
brew tap homebrew/versions
brew install [flags] gcc48
Puede ver las banderas de instalación disponibles usando
brew options gcc48
gcc-4.8 hello.c
gcc-4.8: error trying to exec 'as': execvp: No such file or directory
[flags]
? En mis máquinas, instalé sin banderas y funciona bien. ¿Por qué no intenta llamar gcc-4.8
sin ningún archivo de entrada y ve si obtiene un error fatal? También intente ls /usr/local/Cellar/gcc48/4.8.0/bin
y vea si ese directorio contiene gcc-4.8
.gcc-4.8 --version
se ejecuta, pero no puede ejecutarse en la herramienta secundaria nombrada as
, por lo que muere.g++
como comando en mi terminal? ¿Tengo que vincular software /usr/local/Cellar/gcc48/4.8.1/bin/g++48
en mi /usr/bin?alias g++='g++-4.8'
tu .bashrc
.Yo también tuve este problema. Además, necesito usar gfortran, que no viene con la instalación estándar (obsoleta) de llvm-gcc de Mac.
Descubrí que las compilaciones de computación de alto rendimiento de gcc están actualizadas y funcionan muy bien en Lion.
En caso de que alguien mire este hilo anterior, parece que homebrew/versions, utilizado en la respuesta actualmente aceptada, ha quedado obsoleto a favor de homebrew/core . Solo brew install <formula>
corre
Puede probar esto: https://github.com/kennethreitz/osx-gcc-installer : lo he usado con éxito después de actualizar a Lion para compilar paquetes con Homebrew y otros (Ruby).
Del leeme:
Instalador OSX GCC Descargar e instalar el instalador masivo de Xcode es una gran molestia si solo desea GCC y herramientas relacionadas.
El osx-gcc-installer le permite instalar los compiladores esenciales desde paquetes binarios preconstruidos o lo ayuda a crear su propio instalador.
/usr/bin/gcc
es un enlace simbólico a llvm gcc, pero la referencia explícita /usr/bin/gcc-4.2
o la configuración export CC="gcc-4.2"
en su .bash_profile o archivo adecuado también mitiga el problema. (Consulte también esta pregunta
de desbordamiento de pila ).Comando: brew update brew install gcc ubicación: /usr/local/Cellar/gcc/10.2.0_4: 1 Comando: brew update brew install ubicación de la aplicación: /usr/local/Cellar/gpp/2.27
gio
gcc --version
? Obtengoi686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
y simplemente instalé Xcode desde el MAS. Además, ¿cuál es la salida deecho $PATH
?Konrad Rodolfo
$PATH
es lo habitual (este es un sistema casi en blanco, después de todo):/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
… pero no creo que esto importe. Las fórmulas proporcionadas por homebrew-alt simplemente están desactualizadas y no funcionan con Clang.jeff burdges
Konrad Rodolfo
jeff burdges
Konrad Rodolfo
brew info …
). Aparte de todas las demás ventajas, su usabilidad es mucho más agradable, su interfaz más moderna y la creación de fórmulas propias es mucho más fácil.jeff burdges