86 votes

Comment installer GCC via Homebrew ?

J'utilise exclusivement Homebrew (c'est-à-dire que je n'utilise pas, et n'utiliserai pas, MacPorts ou Fink). Je souhaite également limiter les installations manuelles au strict minimum. 1

Mais comment puis-je installer GCC ?

Tout d'abord, j'ai bien sûr installé Xcode mais la version actuelle n'est pas livrée avec un GCC à jour (j'ai besoin d'au moins 4.5, mais je préférerais le plus récent) - en fait, elle n'est pas livrée avec un GCC correct. du tout (il ne fournit que Clang) et cela semble être un problème pour Homebrew

Je suis au courant d'une liste de compilateurs GCC et cross personnalisés mais en fait toutes ces installations nécessitent un GCC déjà installé - au moins, brew les ingérer échoue avec des erreurs de linker sur Lion que j'attribue à Clang, et -use-gcc ne fonctionne pas pour des raisons évidentes.

brew doctor ne fait que mentionner ce que je sais déjà, à savoir qu'il n'y a pas de GCC (4.2.x) installé.


1 J'ai déjà mélangé MacPorts, Homebrew et quelques installations manuelles et je me suis retrouvé avec un enfer de maintenance et de versions. Je ne veux pas y retourner.

0 votes

Quelle est la sortie de gcc --version ? Je reçois i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00) et j'ai simplement installé Xcode à partir du MAS. Aussi, quel est le résultat de echo $PATH ?

0 votes

@Gio J'ai obtenu le même résultat. $PATH est habituel (il s'agit d'un système presque vierge, après tout) : /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin mais je ne pense pas que cela ait de l'importance. Les formules fournies par homebrew-alt sont simplement dépassées et ne fonctionnent pas avec Clang.

1 votes

Pourquoi utiliser Homebrew ? MacPorts est bon pour gérer plusieurs versions de compilateurs. Et MacPorts peut faire tout ce qui est que Homebrew peut faire.

39voto

Konrad Rudolph Points 2006

Solution Homebrew

Pour répondre à ma propre question, homebrew-versions dispose maintenant d'une version assez récente formule du CCG . Il peut être installé en utilisant

brew install [flags] https://raw.github.com/Homebrew/homebrew-versions/gcc48.rb

[flags] doit inclure toutes les langues requises, par exemple ( --enable-cxx --enable-fortran ).

Cela installera les exécutables avec un suffixe, c'est à dire gcc doit être accessible en tant que gcc-version pour éviter les heurts. Si nécessaire, on peut créer des liens symboliques appropriés pour faire de cette version la version par défaut.

Installation manuelle

Ou bien , un à jour CCG (au moment de la rédaction) peuvent être compilées manuellement en utilisant le shell suivant script :

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

Cela va mettre en scène GCC dans le chemin /usr/gcc-4.7.0 . Maintenant, tout ce que vous avez à faire est de créer des liens symboliques vers les exécutables ou d'ajouter l'attribut bin dans le répertoire $PATH variable.

1 votes

En essayant de compiler une version fonctionnelle de Wine, j'ai également rencontré le problème d'un gcc manquant - malheureusement l'installation de la v4.7 via homebrew m'a donné quelques erreurs ; j'ai donc opté pour la v4.2 d'Apple en utilisant brew tap homebrew/dupes suivi par brew install apple-gcc42 . Cela m'a aidé à obtenir un gcc fonctionnel et Wine. Vous pouvez également obtenir les binaires (comme le fait homebrew) à partir d'ici : r.research.att.com/outils

0 votes

@iolsmit Vous devez absolument réessayer l'installation de GCC 4.7 avec un Homebrew propre et à jour. Cela devrait fonctionner comme sur des roulettes. Si ce n'est pas le cas, veuillez signaler un bogue aux mainteneurs de Homebrew-dupes.

3 votes

brew tap homebrew/dupes; brew install gcc --use-llvm . Voir github.com/Homebrew/homebrew-dupes/issues/20

31voto

yihangho Points 451

La solution fournie par @Konrad Rudolph n'est plus tout à fait correcte car la formule GCC qu'il mentionnait a été déplacée de homebrew/dupes a homebrew/versions . Vous pouvez choisir la version de GCC à installer. Par exemple, au moment de la rédaction de cette réponse, les versions 4.5, 4.7 et 4.8 sont disponibles. Vous pouvez vérifier quelles versions sont disponibles aquí .

En bref, vous pouvez installer GCC 4.8 en utilisant

brew tap homebrew/versions
brew install [flags] gcc48

Vous pouvez voir les drapeaux d'installation disponibles en utilisant

brew options gcc48

0 votes

J'ai essayé et j'ai réussi à l'installer mais il meurt comme ça : gcc-4.8 hello.c gcc-4.8: error trying to exec 'as': execvp: No such file or directory

0 votes

@WarrenP Avez-vous installé avec des [flags] ? Sur mes machines, j'ai installé sans aucun drapeau et cela fonctionne bien. Pourquoi ne pas essayer d'appeler gcc-4.8 sans aucun fichier d'entrée et voyez si vous obtenez une erreur fatale ? Essayez également de ls /usr/local/Cellar/gcc48/4.8.0/bin et voir si ce répertoire contient gcc-4.8 .

0 votes

Il contient gcc-4.8 et gcc-4.8 --version fonctionne mais ne peut pas s'exécuter vers l'outil secondaire nommé as et ainsi il meurt.

21voto

Tim Smith Points 325

J'ai vu quelqu'un faire un lien vers ce vieux post aujourd'hui. La meilleure façon d'installer GCC dans homebrew en ce moment est juste de brew install gcc . Si vous disposez des outils de ligne de commande XCode (ils sont séparés de XCode ; vous pouvez les installer avec xcode-select --install ) installé, une version précompilée sera installée (ce qui est très rapide).

0 votes

Ok et qu'en est-il si j'exécute xcode-select --install et il jette xcode-select: error: command line tools are already installed, use "Software Update" to install updates . Ensuite, je liste les mises à jour logicielles en exécutant softwareupdate -l et il ne jette rien à mettre à jour (une liste vide), ce qui signifie que les outils de ligne de commande XCode sont installés.

0 votes

Je ne suis pas sûr à 100% mais je pense que MacOS considère Xcode comme un remplacement/superset de la CLT mais pas Homebrew. Vous pouvez télécharger un .pkg ici : developer.apple.com/download/more

4voto

cm2 Points 4166

J'ai aussi eu ce problème. De plus, j'ai besoin d'utiliser gfortran, qui n'est pas fourni avec l'installation standard (périmée) de llvm-gcc de Mac.

J'ai trouvé le Calcul haute performance de gcc sont à jour et fonctionnent parfaitement sur Lion.

0 votes

J'ai essayé ça. Non seulement ça n'a pas marché, mais la technique d'installation qu'il utilise est plutôt dangereuse. Ça m'a pris environ une heure pour tout défaire soigneusement.

2 votes

Oh, j'aurais dû dire que je ne l'installe pas comme il le suggère. Je détache le fichier et crée un lien symbolique vers le binaire que je veux, en m'assurant que ce lien symbolique se trouve quelque part dans mon PATH. Habituellement, cela se fait en ajoutant quelque chose de "local" à mon chemin, comme ~/bin/ ou autre.

0 votes

Ouais, ce serait beaucoup plus sain. Sa procédure d'installation est complètement folle et j'aurais dû m'en douter plutôt que de l'essayer aveuglément.

4voto

Avi Points 149

Au cas où quelqu'un regarderait ce vieux fil de discussion, il semble que les homebrew/versions, utilisés dans la réponse actuellement acceptée, ont été déprécié en faveur de homebrew/core . Il suffit de courir brew install <formula> .

0 votes

Pouvez-vous expliquer en quoi cela a un rapport avec la question de l'OP qui est de savoir comment installer GCC via Homebrew ?

0 votes

@fsb La réponse est mise à jour.

1 votes

Il s'agit plutôt d'un commentaire sur la réponse acceptée. Il ne devrait pas être une réponse en soi car il ne répond pas à la question du PO. Une fois que vous avez suffisamment réputation vous pourrez ajouter commentaires et poser des questions de suivi. Pour gagner en réputation, répondre à des questions claires et concises .

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X