web-dev-qa-db-fra.com

OSX - remplace la version 4.2.1 de gcc par la version 4.9 installée via Homebrew

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

34
Dacotah

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
57
Mark Setchell

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

8
eeny

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.

1

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.

1
Pascal Waniha