Comment utiliser plusieurs versions de GCC

Nous avons une nouvelle application qui nécessite glibc 2.4 (à partir de gcc 4.1). La machine sur laquelle nous travaillons a gcc 3.4.6. Nous ne pouvons pas mettre à niveau, et l’application doit être exécutée sur cette machine.

Nous avons toutefois installé gcc 4.1 quand il s’agit de comstackr le temps, il utilise tous les inclusions, etc., depuis la version 3.4.6.

Comment pouvons-nous contourner cela?

Des suggestions sur l’utilisation de 4.1 pour cette application?

Reportez-vous à la section “Comment installer plusieurs versions de GCC” dans la FAQ GNU GCC.

Il y a aussi un livre blanc ici .

Avez-vous essayé gcc-select ? Sinon, essayez de définir INCLUDE_PATH et LIBRARY_PATH dans votre shell.

Vous pouvez encore exécuter l’ancien gcc. Essayez de créer un lien symbolique de gcc vers votre version, par exemple

 ln -s gcc-4.1 gcc 

Attention à ne pas supprimer un ancien binary “gcc” placé au cas où ils ne placeraient pas simplement un lien symbolique. Si vous pouvez recomstackr votre propre version de gcc, le plus sûr est d’utiliser un autre préfixe au moment de configurer gcc, quelque chose comme --prefix=/home/jojo/usr/gcc (je l’ai fait avec gcc-4.4 à partir de svn-trunk , et ça a bien fonctionné).

Notez que cela ne fait que lancer la bonne version de gcc. Si vous mettez à jour votre gcc, votre glibc ne sera pas mise à jour automatiquement aussi. C’est un paquet séparé qui est profondément couplé avec le rest du système. Soyez prudent lorsque vous installez une autre version de glibc.

update-alternatives est un très bon moyen d’avoir plusieurs versions de gcc:

http://ubuntuguide.net/how-to-install-and-setup-gcc-4-1g4-1-in-ubuntu-10-0410-10

pour Ubuntu c’est assez facile

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

sudo apt-get update

puis installez par exemple la version 6 de gcc

sudo apt-get install gcc-6