J'ai installé gcc avec brew install gcc
mais quand je tape gcc
le comportement par défaut est toujours d'utiliser clang
. Comment puis-je faire en sorte que la saisie gcc
dans le terminal utilise automatiquement l'option gcc
installé par Homebrew ?
Réponses
Trop de publicités?Tout d'abord, examinez votre variable $PATH.
echo $PATH
Le site gcc
de homebrew devrait être un lien symbolique qui réside dans /usr/local/bin
pour Installations d'Intel et de Rosetta 2 o /opt/homebrew/bin
pour Apple Silicon. Quand cette version brassée de gcc
apparaît dans le chemin listé avant la version Xcode de gcc
/ clang
les compilateurs locaux seront appelés, à moins qu'un paquet soit codé en dur avec le chemin complet d'un compilateur différent de celui que vous avez dans le fichier /usr/local
Si vous modifiez la variable PATH, veillez à vous déconnecter du shell ou de l'ordinateur. refaire le tour de la coquille le cas échéant.
Cette réponse a une solution élégante qui utilise également des alias, de sorte que vous n'avez même pas à penser ou à vous soucier du chemin si vous avez plus d'une gcc
installé. Il va plus loin en vous permettant de choisir la version de gcc à appeler si vous installez plus d'une version.
Si which gcc
vous donne
> which gcc
/usr/bin/gcc
Vous avez deux options :
-
Créer un nouveau
gcc
lien symbolique sous/usr/local/bin/
.Liens homebrew propres gcc sous
/usr/local/bin/gcc-<version>
pour compatibilité. Donc, en faisantln -sf /usr/local/bin/gcc-4.9 /usr/local/bin/gcc
indiquera un /usr/local/bin/gcc
lien symétrique vers gcc-4.9
installé par Homebrew, qui devrait remplacer le fichier gcc
de /usr/bin
si votre PATH spécifie /usr/local/bin
avant /usr/bin
.
Vous pouvez utiliser gcc-7
au lieu de
référence https://github.com/Homebrew/legacy-homebrew/issues/40374
Lorsque vous construisez des applications C/C++/Objective C, etc., vous n'exécutez généralement pas le compilateur C à partir de la ligne de commande, mais vous utilisez un système de construction, dont l'un des plus simples est un fichier makefile.
La méthode standard d'Unix (par exemple, avant que gcc ne soit le seul compilateur) consiste à passer des informations au système de compilation pour savoir où se trouve votre compilateur. Il s'agit souvent de la variable d'environnement CC pour le compilateur C CPP ou similaire pour le C++.
cela se fait souvent en ligne de commande
par exemple
make CC=/usr/bin/clang all # for Clang
make CC=/usr/local/bin/gcc-4.9 all # for gcc-4.9 under Homebrew
[Seulement pour m1 Mac]
Homebrew installe par défaut gcc à /opt/homebrew/bin
. Vous pourrez y trouver gcc-11
. Vous pouvez également trouver ce chemin en exécutant which gcc-11
.
Vous pouvez ensuite établir un lien symbolique entre ce fichier et /usr/local/bin/gcc
en utilisant cette commande :
sudo ln -s $(which gcc-11) /usr/local/bin/gcc
Assurez-vous juste que /usr/local/bin
dans votre $PATH
vient avant /usr/bin
pour passer outre clang
- Réponses précédentes
- Plus de réponses