Ich verwende ausschließlich Homebrew (dh ich verwende und werde MacPorts oder Fink nicht verwenden). Ich möchte auch manuelle Installationen auf ein absolutes Minimum beschränken. 1
… Aber wie kann ich GCC installieren?
Zunächst einmal habe ich natürlich Xcode installiert, aber die aktuelle Version wird nicht mit einem einigermaßen aktuellen GCC ausgeliefert (ich brauche mindestens 4.5, würde aber das neueste bevorzugen) – tatsächlich wird es nicht ausgeliefert mit einem richtigen GCC überhaupt (es versendet nur Clang) und das scheint ein Problem für Homebrew zu sein …
Mir ist eine Liste von benutzerdefinierten GCC- und Cross-Compilern bekannt , aber tatsächlich erfordern alle diese Installationen einen bereits installierten GCC - zumindest brew
schlägt das Eingeben mit Linker-Fehlern auf Lion fehl, die ich Clang zuschreibe, und -use-gcc
funktioniert offensichtlich nicht Gründe dafür.
brew doctor
erwähnt nur, was ich bereits weiß, dass kein GCC (4.2.x) installiert ist.
1 Ich habe zuvor MacPorts, Homebrew und einige manuelle Installationen gemischt und bin in einer Wartungs- und Versionierungshölle gelandet. Da möchte ich nicht noch einmal hin.
Ich habe heute jemanden gesehen, der auf diesen alten Beitrag verlinkt hat. Der beste Weg, GCC im Moment in Homebrew zu installieren, ist einfach brew install gcc
. Wenn Sie die XCode Command Line Tools (sie sind von XCode getrennt; Sie können sie mit xcode-select --install
installieren) installiert haben, wird eine vorkompilierte Version installiert (was sehr schnell ist).
xcode-select --install
und es wirft xcode-select: error: command line tools are already installed, use "Software Update" to install updates
. Dann liste ich Software-Updates auf, indem ich sie ausführe, softwareupdate -l
und es wird nichts zum Aktualisieren ausgegeben (eine leere Liste), was bedeutet, dass XCode-Befehlszeilentools installiert sind.Um meine eigene Frage zu beantworten, homebrew-versions
hat GCC jetzt eine ziemlich aktuelle Formel . Es kann mit installiert werden
brew install [flags] https://raw.github.com/Homebrew/homebrew-versions/gcc48.rb
Wo [flags]
sollten alle erforderlichen Sprachen enthalten sein, zB ( --enable-cxx --enable-fortran
).
Dadurch werden die ausführbaren Dateien mit einem Suffix installiert, dh gcc
es muss darauf zugegriffen werden gcc-version
, um Konflikte zu vermeiden. Bei Bedarf kann man entsprechende Symlinks erstellen, um diese Version zur Standardversion zu machen.
Alternativ kann ein aktueller GCC (zum Zeitpunkt des Schreibens) manuell mit dem folgenden Shell-Skript kompiliert werden:
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
Dadurch wird GCC in den Pfad eingefügt /usr/gcc-4.7.0
. Jetzt müssen Sie nur noch Symlinks zu den ausführbaren Dateien erstellen oder das bin
Verzeichnis zur $PATH
Variablen hinzufügen.
brew tap homebrew/dupes
gefolgt von brew install apple-gcc42
. Dies half mir, einen funktionierenden gcc und Wein zu bekommen. Sie können die Binärdateien auch (wie Homebrew) von hier herunterladen: r.research.att.com/toolsbrew tap homebrew/dupes; brew install gcc --use-llvm
. Siehe github.com/Homebrew/homebrew-dupes/issues/20Die von @Konrad Rudolph bereitgestellte Lösung ist nicht mehr ganz korrekt, da die von ihm erwähnte GCC-Formel von homebrew/dupes
nach verschoben wurde homebrew/versions
. Sie können auswählen, welche Version von GCC installiert werden soll. Zum Zeitpunkt des Verfassens dieser Antwort sind beispielsweise die Versionen 4.5, 4.7 und 4.8 verfügbar. Sie können hier nachsehen, welche Versionen verfügbar sind .
Kurz gesagt, Sie können GCC 4.8 installieren, indem Sie verwenden
brew tap homebrew/versions
brew install [flags] gcc48
Sie können verfügbare Installationsflags anzeigen, indem Sie verwenden
brew options gcc48
gcc-4.8 hello.c
gcc-4.8: error trying to exec 'as': execvp: No such file or directory
[flags]
? Auf meinen Maschinen habe ich ohne Flags installiert und es funktioniert einwandfrei. Warum versuchen Sie nicht, gcc-4.8
ohne Eingabedatei anzurufen, und sehen, ob Sie einen schwerwiegenden Fehler erhalten? Versuchen Sie auch zu ls /usr/local/Cellar/gcc48/4.8.0/bin
sehen, ob dieses Verzeichnis gcc-4.8
.gcc-4.8 --version
läuft, kann aber nicht zum sekundären Tool mit dem Namen ausgeführt as
werden und stirbt daher ab.g++
ich als Befehl in meinem Terminal hinzu? muss ich in meinem /usr/bin einen Softlink /usr/local/Cellar/gcc48/4.8.1/bin/g++48
erstellen?alias g++='g++-4.8'
Sie Ihre .bashrc
.Auch ich hatte dieses Problem. Außerdem muss ich gfortran verwenden, das nicht mit der (veralteten) Standardinstallation von Macs llvm-gcc geliefert wird.
Ich habe festgestellt, dass die High Performance Computing -Builds von gcc auf dem neuesten Stand sind und unter Lion hervorragend funktionieren.
Falls sich jemand diesen alten Thread ansieht, scheint Homebrew/versions, das in der derzeit akzeptierten Antwort verwendet wird, zugunsten von homebrew/core veraltet zu sein . Lauf einfach .brew install <formula>
Sie können dies versuchen - https://github.com/kennethreitz/osx-gcc-installer - Ich habe es nach dem Upgrade auf Lion erfolgreich verwendet, um Pakete mit Homebrew und anderen (Ruby) zu kompilieren.
Aus dem Read me:
OSX GCC Installer Das Herunterladen und Installieren des massiven Xcode-Installers ist ein riesiger Aufwand, wenn Sie nur GCC und verwandte Tools wollen.
Mit dem osx-gcc-installer können Sie die wesentlichen Compiler entweder aus vorgefertigten Binärpaketen installieren oder Ihren eigenen Installer erstellen.
/usr/bin/gcc
ist ein symbolischer Link zu llvm gcc, aber ein expliziter Verweis auf /usr/bin/gcc-4.2
oder eine Einstellung export CC="gcc-4.2"
in Ihrem .bash_profile oder einer geeigneten Datei mindert das Problem ebenfalls. (Siehe auch diese Stack Overflow- Frage.)Befehl: brew update brew install gcc-Speicherort: /usr/local/Cellar/gcc/10.2.0_4: 1 Befehl: brew update brew install app-Speicherort: /usr/local/Cellar/gpp/2.27
Gio
gcc --version
? Ich bekommei686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
und ich habe einfach Xcode aus dem MAS installiert. Auch was ist die Ausgabe vonecho $PATH
?Konrad Rudolf
$PATH
ist das Übliche (immerhin ist dies ein fast leeres System):/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
… aber ich denke nicht, dass das wichtig ist. Die von homebrew-alt bereitgestellten Formeln sind einfach veraltet und funktionieren nicht mit Clang.Jeff Burdges
Konrad Rudolf
Jeff Burdges
Konrad Rudolf
brew info …
). Abgesehen von allen anderen Vorteilen ist die Benutzerfreundlichkeit einfach viel schöner, die Oberfläche moderner und das Erstellen eigener Formeln viel einfacher.Jeff Burdges