web-dev-qa-db-fra.com

Comment utiliser plusieurs versions de GCC

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

Nous avons installé gcc 4.1, cependant, en ce qui concerne le temps de compilation, il utilise toutes les inclusions, etc., de 3.4.6.

Comment contourner cela?

Des suggestions sur l'utilisation de la version 4.1 uniquement pour cette application?

35
Alex

Reportez-vous à "Comment installer plusieurs versions de GCC" ici dans la GNU GCC).

Il y a aussi un livre blanc ici .

25
nzpcmad

As-tu essayé gcc-select? Sinon, essayez de définir le INCLUDE_PATH et LIBRARY_PATH dans votre Shell.

3
Konrad Rudolph

pour Ubuntu c'est assez facile

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

Sudo apt-get update

puis installez par exemple gcc version 6

Sudo apt-get install gcc-6

2
i716

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-1

2
endian

Vous exécutez peut-être toujours l'ancien gcc. Essayez de créer un lien symbolique de gcc vers votre version de celui-ci, comme

ln -s gcc-4.1 gcc

Méfiez-vous de ne pas supprimer un ancien binaire "gcc" qui y est placé, au cas où ils ne placeraient pas seulement un lien symbolique. Si vous pouvez recompiler votre propre version de gcc, le plus sûr est simplement d'utiliser un autre préfixe au moment de la configuration de gcc, quelque chose comme --prefix=/home/jojo/usr/gcc (je l'ai fait de cette façon avec gcc-4.4 de svn-trunk, et cela a très bien fonctionné).

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

2