OSX - remplacer la version de gcc 4.2.1 avec 4,9 installé via Homebrew
Cela a été semés sur moi pendant un certain temps maintenant. Je suis en train de compiler un énorme fichier C++ (je sais que ça fonctionne comme je l'ai il fonctionne très bien sur mon Arch Linux ordinateur au travail). Quand j'ai vérifié ma version de GCC sur mon mac Il retourne
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.1.0
Thread model: posix
J'ai également installé à la plus récente version de GCC en utilisant Homebrew avec
brew install gcc49
Ma question maintenant est de savoir comment dois-je appliquer la nouvellement installé la version de GCC pour être la version par défaut que le terminal utilise?
Je suis aussi conscient que lorsque vous utilisez homebrew pour isntall gcc de noms de gcc-49, de sorte qu'il n'y est pas de confusion entre les paquets.
Je n'ai aucune idée de comment faire pour remplacer la version 4.2.1 fourni avec XCode avec les 4,9 version que j'ai installé.
Grâce
Edit:
Passé à ma mac pour obtenir le retour complet de déclaration de gcc --version
Edit 2:
Mon fin du jeu ici est d'être capable de naviguer dans le répertoire et être en mesure de saisir
make
sudo make install
pour installer le démon qui a été fait. Maintenant que les retours des tonnes d'erreurs aléatoires des paquets et de la Bibliothèque Standard
- Pas cochée, mais je suppose que vous venez d'exécuter
/usr/local/bin/gcc
et assurez-vous que/usr/local/bin
est près du début de votre CHEMIN. - Pas exactement sûr de ce que cela signifie. Je suis très nouveau avec le mac du terminal et de la façon de faire quelque chose avec elle. J'ai ajouté ceci, si cela signifie quelque chose pour vous echo "PATH=\"/usr/local/bin:$PATH\"" > ~/.bash_profile
- Essayez
/usr/local/bin/gcc --version
- Exact ligne ne fonctionne pas, toutefois, /usr/local/bin/gcc-4.9 --version retourne gcc-4.9 (Homebrew gcc49 4.9.2_1) 4.9.2 Copyright (C) 2014 Free Software Foundation, Inc. C'est un logiciel libre; voir la source pour des conditions de copie. Il n'y a PAS de garantie, pas même de qualité MARCHANDE ou d'ADÉQUATION à UN USAGE PARTICULIER.
- Afin de modifier votre
~/.bash_profile
donc il ditexport PATH=/usr/local/bin:$PATH
et puis de lancer un nouveau Terminal et essayez à nouveau comme cegcc-4.9 --version
- J'obtiens les mêmes erreurs et gcc --version renvoie toujours 4.2. J'ai aussi PATH="/usr/local/bin:/opt/local/bin:/opt/local/sbin:/usr/local/mysql/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" dans mon ~/.bash_profile bien. Devraient-ils être supprimés?
- Essayez
gcc-4.9 --version
- Qui fonctionne avec le long CHEMIN qui est actuellement là, ainsi qu'avec votre exportation
- Bon alors vous êtes tous aujourd'hui. Si vous souhaitez que la commande simple
gcc
pour appeler votre gcc-4.9, celacd /usr/local/bin; ls gcc
si rien n'apparaît, vous pouvez faireln -s gcc-4.9 gcc
et qui deviendra par défaut de gcc. - Merci! l'exécution de make dans le répertoire ne fonctionne pas donc je vais regarder dans la prochaine. Pourriez-vous poster que l'exportation et le dernier commentaire que vous faites comme une réponse et je vais le marquer comme correct
Vous devez vous connecter pour publier un commentaire.
Par défaut,
homebrew
endroits les exécutables (binaires) pour les paquets dont il s'installe dans/usr/local/bin
- ce qui est un très bon point pour les fichiers binaires installés par les utilisateurs locaux quand vous pensez à ce sujet - par rapport à/bin
qui abrite standardisded binaires appartenant au noyau du système d'exploitation. Donc, votrebrew
de commande doivent être installésgcc-4.9
en/usr/local/bin
. La question est maintenant de savoir comment l'utiliser... vous avez plusieurs options.Option 1
Si vous voulez juste pour compiler une ou deux choses aujourd'hui et de demain, et puis probablement pas utiliser le compilateur de nouveau, vous peut aussi bien il suffit d'invoquer la
gcc
installé parhomebrew
avec le chemin d'accès complet comme ceci:Option 2
Si vous allez être en utilisant
gcc
beaucoup, cela devient un peu lassant tapant le chemin d'accès complet à chaque fois, de sorte que vous pouvez mettre la ligne suivante dans votre~/.bash_profile
et puis de lancer un nouveau Terminal et il saura qu'il doit regarder en
/usr/local/bin
, de sorte que vous serez en mesure de s'en tirer avec tout simplement en tapantOption 3
Si vous voulez juste utiliser
gcc
d'invoquer le compilateur, sans se soucier de la version actuelle, vous pouvez faire l'Option 2 ci-dessus et, en outre créer un lien symbolique comme ceQui va vous permettre d'exécuter la
homebrew
-installégcc
en tapant simplementgcc
à la ligne de commande, comme ceciRemarque:
Si plus tard vous souhaitez installer, dire
gcc-4.13
ou somesuch, vous devez faire de votrebrew install
comme avant, puis changer le lien symbolique comme ceci:simple mise à jour de l'ordre de $PATH dans ~/.bash_profile au bistrot installé la version
'export PATH=/usr/local/Cellar/gcc/5.1.0/bin:$PATH'
n'a pas suffi à les faire passer pour moichanger l'alias dans votre ~./bash_profile (
alias gcc='gcc-5'
) fonctionne, mais peut être déroutant, c'est à direwhich gcc
sera de retour le Cliquetis de la versionce qui a fonctionné pour moi a été de faire un lien symbolique dans le brassage répertoire de gcc ainsi que de mettre à jour le chemin d'accès (point 1 ci-dessus)
maintenant
which gcc
renvoie la bonne version 5.1.0OS X ne vient pas avec GCC installé (4.2.1 ou autre). Clang est le système par défaut du compilateur et a été pendant un certain temps. C'est en utilisant le C++ en-têtes de 4.2.1 lorsqu'il est invoqué comme GCC. Avez-vous essayé de compiler votre code avec Clang nativement, au lieu de l'appeler "gcc" (qui appelle Clang)? Il a de plus moderne en-têtes et le support du C++ que la GCC en mode d'émulation.
cd /usr/local/bin ln -s gcc-4.9 gcc
comme indiqué par @MarkSetchellTélécharger la gcc binaires décompresser et copier le bin, lib comprennent partager et libexec les fichiers de votre répertoire /usr puis tapez gcc --version c'est ce que j'attends de vous voir
gcc --version
gcc (GCC) 4.9.2 20141029 (version préliminaire)
Copyright (C) 2014 Free Software Foundation, Inc.
C'est un logiciel libre; voir la source pour des conditions de copie. Il n'y a PAS de
garantie; même pas de qualité MARCHANDE ou d'ADÉQUATION à UN USAGE PARTICULIER.