Comment installer le dernier gcc sur FreeBSD?

10

Comment installer la dernière version gccde FreeBSD et configurer le système pour que cette dernière version soit utilisée pour compiler d'autres programmes?

Au moment d'écrire ces lignes, la dernière version de gccest la version 4.9.0. Et j'utilise FreeBSD 10.0.

J'ai en fait besoin g++du compilateur C ++; mais je dois installer quelque chose comme gcc49package pour cela, non?

Nickolai Leschov
la source
Dp vous voulez compiler tous les ports avec GCC ou avez-vous juste besoin de GCC?
Raphael Ahrens
Je voudrais gcccompiler mon logiciel. Et peut-être les ports que j'installerais après cela, si cela peut être fait.
Nickolai Leschov
N'oubliez pas qu'il existe différentes branches à partir desquelles
Mateusz Piotrowski

Réponses:

16

Vous pouvez installer GCC 4.9 en le construisant à partir de ports avec

cd /usr/port/lang/gcc49; make install clean

ou si vous avez portmaster

portmaster -DHB lang/gcc49

ou si vous préférez des packages avec

pkg install lang/gcc49

Si vous passez lang/gcc49à lang/gccvous installerez la version stable la plus récente de GCC actuellement c'est GCC 4.7.

Lorsque vous souhaitez construire tous vos ports avec GCC au lieu de Clang, vous devez modifier /etc/make.confet ajouter

.if !empty(.CURDIR:M/usr/ports/*) && exists(/usr/local/bin/gcc49)
CC=gcc49
CXX=g++49
CPP=cpp49
.endif

et éditez /etc/libmap.confet ajoutez-y

libgcc_s.so.1   gcc49/libgcc_s.so.1
libgomp.so.1    gcc49/libgomp.so.1
libobjc.so.3    gcc49/libobjc.so.4
libssp.so.0     gcc49/libssp.so.0
libstdc++.so.6  gcc49/libstdc++.so.6

Voici un article de FreeBSD.org qui explique cela plus en détail.

Mais vous n'avez pas vraiment besoin de GCC pour les ports, tous les ports qui dépendent déjà de GCC utiliseront GCC.

Éditer:

Et ouais g++sera installé avec tous les ports GCC.

Raphael Ahrens
la source
4
Notez que maintenant lang/gcc5existe également.
PythonNut
2
et lang/gcc7(décembre 2017)
tronqué
lang / gcc installerait la dernière version de gcc.
user917099
@ user917099 Pas toujours quelques fois lang / gcc a une ou deux versions de retard. Au moment où la réponse a été écrite lang/gccne pointait pas lang/gcc49.
Raphael Ahrens