63 votes

Installé gcc avec Homebrew, maintenant comment utiliser ce gcc au lieu de clang ?

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 ?

33voto

Oskar Points 1242

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.

18voto

Si which gcc vous donne

> which gcc
/usr/bin/gcc

Vous avez deux options :

  1. Créer un alias .

  2. 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 faisant

    ln -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 .

6voto

Qiang Huang Points 167

Vous pouvez utiliser gcc-7 au lieu de

référence https://github.com/Homebrew/legacy-homebrew/issues/40374

4voto

yoliho Points 340

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

1voto

yassine Points 89

[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

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