J'utilise actuellement Ubuntu 16.04
et souhaitez installer gcc-5.3
depuis la source, sans perturber le gcc-5.4
et gcc-4.9
que j'ai déjà installé à l'aide du gestionnaire de paquets Synaptic.
La raison pour laquelle je veux gcc-5.3
est-ce que j'utilise CUDA 8.0 RC
, qui ne prend pas en charge les versions de gcc après 5.3
. Plutôt que de rétrograder vers 4.9
, j'aimerais installer (ou au moins savoir installer) 5.3
. J'ai déjà le code pour gcc-5.3
et seulement besoin de passer par le configure/make/make install
rituel.
Maintenant, j'ai besoin de comprendre les différentes options de configuration avant d'exécuter make et make install. Je veux surtout être certain d'installer gcc-5.3
au bon endroit et n'interfère pas avec mon gcc-5.4
existant et gcc-4.9
.
J'ai trouvé un compte sur la façon de configurer 5.3
, c'était comme suit :
./gcc-5.3.0/configure --disable-checking --program-suffix=-5.3 --enable-languages=c,c++,go,objc --disable-multilib --with-system-zlib prefix=/usr/local/gcc-5.3
Certaines de ces options ont du sens, d'autres non. Plus précisément, les options que je pense comprendre suffisamment bien pour ne pas me tromper sont :
--disable-checking: Will make the installation quicker, but at the risk
of missing errors. Since I'm paranoid, I'll probably
omit this option.
--disable-multilib: I don't understand this. I gather it has something
to do with variations on the compiler's target machine,
but that's all I can gather.
At worst, if I omit this option, I think I'll just
end up with some extra libraries, which doesn't seem
so bad. Why do/don't I want to use this?
--with-system-zlib: Use the zlib that I already have with my system,
rather than gcc's version. This seems reasonable to
me.
--enable-languages=c,c++,go,objc: AFAIK, I'm really just interested in c & c++,
so this option seems pretty harmless, although I might
just use --enable-lnguages=all, since it can't hurt.
Les options qui m'inquiètent sont :
--program-suffix=-5.3: This seems just to add a -5.3 suffix
at the end of the installation path,
which is probably a good idea if I get the
path right
prefix=/usr/local/gcc-5.3: This just seems to specify the
installation directory and to make the
--program-suffix=-5.3 specification
redundant. However, it is the option that
makes me the most uneasy.
Quand je fais un find . -name gcc
, les seuls chemins pertinents que je vois sont /usr/lib/gcc
et /usr/bin/gcc
Dans /usr/lib/gcc
, il y a deux sous-répertoires – i686-linux-gnu
et x86_64-linux-gnu
, comme j'ai une machine 64 bits, j'ai regardé dans le répertoire x64.
Là, j'ai vu un soft-link - 4.9.3
, celui lié à un répertoire nommé 4.9
, qui avait des fichiers pour gcc-4.9
. De même, j'ai vu un lien symbolique appelé 5.4.0
celui lié à un répertoire appelé 5
, qui avait des fichiers pour gcc-5.4
. Donc, je m'attends à vouloir utiliser prefix=/usr/lib/gcc/5.3
et ne pas utiliser le --program-suffix
option. Est-ce correct ?
À ce stade, je suppose simplement que lorsque je lance make &make install que le .a
&.so
les fichiers seront placés dans /usr/lib/gcc/5.3
et que l'exécutable se retrouvera sous la forme /usr/bin/gcc-5.3
et que je pourrai utiliser les alternatives de mise à jour d'Ubuntu pour me déplacer entre gcc-5.4
, gcc-5.3
et gcc-4.9
(Remarque :la raison pour laquelle je n'utilise pas Synaptic est qu'il ne fournit que gcc-5.4, qu'il appelle gcc-5. De même, le ppa ppa:ubuntu-toolchain-r/test
fait référence à toutes les versions de gcc-5.X en tant que gcc-5, ce qui semble également dangereux à utiliser. Je soupçonne que la décision de faire référence à toutes les versions mineures de gcc-5.x car gcc-5 est la racine de mes problèmes)
Réponse acceptée :
Vous n'avez pas besoin d'installer gcc=5.3 depuis la source dans ce cas. Vous pouvez utiliser un environnement conda (installer Miniconda ou Anaconda) et installer gcc_linux-64=5.3.