Je suis donc un nouveau programmeur et je viens d'installer XCode sur mon Macbook pour obtenir le GCC. Je pense que Xcode est le seul moyen d'obtenir GCC sur OSX. Maintenant, lorsque j'exécute mon application Hello World, en C++, g ++ apparaît en disant que c'est la version 4.0.1 mais quand je cherche des commandes commençant par g, je vois aussi g ++ - 4.2. Existe-t-il un moyen de définir 4.2 par défaut plutôt que 4.0.1, et existe-t-il également un moyen de mettre à jour gcc vers la dernière version 4.4.0?
EDIT: Ok, j'ai donc installé macports et installé gcc4.4 et il apparaît sur le terminal comme gcc-mp-4.4 et comment puis-je le rendre par défaut avec gcc_select, comme quelles sont les commandes et les trucs. Merci.
Si vous installez macports, vous pouvez installer gcc select, puis choisir votre version gcc.
/opt/local/bin/port install gcc_select
Pour voir vos versions, utilisez
port select --list gcc
Pour sélectionner une version, utilisez
Sudo port select --set gcc gcc40
Je sais que c'est une vieille demande. Mais cela pourrait encore être utile à certains. Avec les versions actuelles de MacPorts, vous pouvez choisir la version gcc par défaut à l'aide de la commande port. Pour répertorier les versions disponibles de gcc, utilisez:
$ Sudo port select --list gcc
Available versions for gcc: gcc42 llvm-gcc42 mp-gcc46 none (active)
Pour définir gcc sur la version MacPorts:
$ Sudo port select --set gcc mp-gcc46
Je m'arrête juste pour dire que l'utilisation d'un lien logiciel pour accomplir cela est une idée terrible, pas bonne et horrible.
L'un des éléments clés de l'écriture de logiciels est la reproductibilité - vous voulez pouvoir obtenir les mêmes résultats à chaque fois. Ces systèmes sont si complexes que vous souhaitez réduire toutes les sources d'erreur invisibles.
Avoir un lien logiciel est une source d'erreur invisible. C'est le genre de chose que vous oublierez dans un mois, puis passez à une autre machine, et demandez-vous pourquoi vous obtenez des résultats différents - ou, vous essayerez de mettre à niveau votre système, et vous obtiendrez des erreurs étranges parce que ce n'est pas attend un lien logiciel là-bas.
De plus, cela n'est pas garanti de fonctionner - en particulier, il n'est pas clair que vous obtiendrez les bons fichiers système, qui ont certainement changé entre les itérations de gcc.
gcc_select est un moyen systématique de faire la même chose qui fonctionnera de manière prévisible, ou dans le pire des cas, vous pouvez déposer un rapport de bogue et obtenir un éventuel correctif ou le corriger vous-même.
Malheureusement :-( gcc_select n'affecte pas quel compilateur XCode utilise donc ce n'est pas la voie à suivre si vous avez besoin de travailler dans XCode (ce que je fais). Je ne sais toujours pas ce que cela pourrait être.
utilisez "gcc_select -l"
> gcc_select -l
gcc40 mp-gcc44
> gcc_select mp-gcc44
dans /usr/bin
type
Sudo ln -s -f g++-4.2 g++
Sudo ln -s -f gcc-4.2 gcc
Ça devrait le faire.
Vous pouvez avoir plusieurs versions de GCC sur votre box, pour sélectionner celle que vous souhaitez utiliser, appelez-la avec le chemin complet, par ex. au lieu de g++
utilise le chemin complet /usr/bin/g++
sur la ligne de commande (dépend de l'emplacement de votre gcc).
Pour la compilation de projets, cela dépend du système que vous utilisez, je ne suis pas sûr de Xcode (je suis satisfait de l'atmosphère par défaut), mais lorsque vous utilisez Makefiles, vous pouvez définir GXX =/usr/bin/g ++ et ainsi de suite.
[~ # ~] modifier [~ # ~]
Il existe maintenant un script xcrun
qui peut être interrogé pour sélectionner la version appropriée des outils de construction sur mac. Excepté man xcrun
J'ai googlé cette explication sur xcode et outils de ligne de commande qui résume à peu près comment l'utiliser.