Cela me tourmente depuis un moment. J'essaie de compiler un énorme fichier C++ (je sais que cela fonctionne comme je fonctionne très bien sur mon ordinateur Arch Linux au travail). Quand j'ai vérifié ma version de GCC sur mon mac, il retourne ce qui suit
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 version la plus récente de GCC sous Homebrew avec
brew install gcc49
Ma question est la suivante: comment appliquer la version GCC nouvellement installée à la version par défaut utilisée par le terminal?
Je suis également conscient que lorsque vous utilisez homebrew pour isntall gcc, il le nomme gcc-49 afin d'éviter toute confusion entre les packages.
Je ne sais pas comment remplacer la version 4.2.1 fournie avec XCode par la version 4.9 que j'ai installée.
Merci
Edit: Basculé vers mon mac pour obtenir la déclaration de retour complète de gcc --version
Edit 2: Mon dernier jeu ici est de pouvoir naviguer dans le répertoire et de pouvoir taper
make
Sudo make install
pour installer le démon qui a été fait. En ce moment, cela retourne des tonnes d'erreurs avec les paquets aléatoires et la bibliothèque standard
Par défaut, homebrew
place les fichiers exécutables (fichiers binaires) des packages qu’il installe dans /usr/local/bin
- ce qui est un endroit assez judicieux pour les binaires installés par les utilisateurs locaux quand on y pense - par rapport à /bin
qui contient les fichiers binaires standardisés appartenant au système d’exploitation principal. Donc, votre commande brew
devrait avoir installé gcc-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 compiler une ou deux choses aujourd'hui et demain, et que vous n'utilisiez probablement plus le compilateur, vous pouvez également invoquer le gcc
installé par homebrew
avec le chemin complet, comme ceci: :
/usr/local/bin/gcc-4.9 --version
Option 2
Si vous allez beaucoup utiliser gcc
, il devient fastidieux de taper explicitement le chemin complet à chaque fois. Vous pouvez donc insérer les éléments suivants dans votre ~/.bash_profile
export PATH=/usr/local/bin:$PATH
puis lancez un nouveau terminal et il saura qu’il doit regarder dans /usr/local/bin
, vous pourrez donc vous contenter de taper
gcc-4.9 --version
Option
Si vous voulez juste utiliser gcc
pour appeler le compilateur, sans vous soucier de la version actuelle, vous pouvez utiliser l'option 2 ci-dessus et créer un lien symbolique comme celui-ci.
cd /usr/local/bin
ln -s gcc-4.9 gcc
Cela vous permettra d’exécuter homebrew
- installé gcc
en tapant simplement gcc
en ligne de commande, comme ceci:
gcc --version
Note:
Si vous voulez installer plus tard, dites gcc-4.13
ou alors, vous feriez votre brew install
comme précédemment, changez le lien symbolique comme ceci:
cd /usr/local/bin
rm gcc # remove old link from gcc to gcc-4.9
ln -s gcc-4.13 gcc # make new link from gcc to gcc-4.13
mettre à jour simplement la commande de $ PATH dans ~/.bash_profile à la version installée de la brasserie 'export PATH=/usr/local/Cellar/gcc/5.1.0/bin:$PATH'
n'était pas suffisant pour me changer
changer l'alias dans votre ~./bash_profile (alias gcc='gcc-5'
) fonctionne mais peut prêter à confusion which gcc
retournera la version de Clang
ce qui a fonctionné pour moi a été de créer un lien symbolique dans le répertoire brassin gcc et de mettre à jour le chemin (point 1 ci-dessus)
cd /usr/local/Cellar/gcc/5.1.0/bin/gcc
ln -s gcc-5 gcc
à présent which gcc
renvoie la version correcte 5.1.0
OS X n'est pas livré avec GCC installé (4.2.1 ou autre). Clang est le compilateur système par défaut et ce depuis un certain temps. Il utilise les en-têtes C++ de 4.2.1 lorsqu'il est appelé en tant que GCC. Avez-vous essayé de compiler votre code avec Clang en mode natif, au lieu d'appeler "gcc" (qui appelle Clang)? Il a des en-têtes plus modernes et supporte C++ que le mode d'émulation GCC.
Téléchargez les fichiers binaires gcc untar et copiez les fichiers bin, lib include share et libexec dans votre répertoire/usr puis tapez gcc --version c’est ce que j’attends de vous
gcc --version gcc (GCC) 4.9.2 20141029 (version préliminaire) Copyright (C) 2014 Free Software Foundation, Inc. Ceci est un logiciel libre; voir la source pour les conditions de copie. Il n'y a AUCUNE garantie; pas même pour la VALEUR MARCHANDE ou l'ADÉQUATION À UN USAGE PARTICULIER.