Je veux commencer à jouer avec certaines des nouvelles fonctionnalités C++ 11 et il semble que le meilleur support pour cela est avec gcc 4.8 et Squeeze est livré avec 4.4.5.
Cependant, je ne veux pas endommager ma configuration actuelle. Quelle est la meilleure façon d'obtenir les deux versions de gcc fonctionnant côte à côte? Je suis principalement préoccupé par le grand nombre de dépendances et que leur intégration à mon système actuel puisse le rendre instable.
Quelqu'un a-t-il réussi à le faire et quelles sont les étapes à suivre?
À défaut, je vais probablement créer un VM et exécuter une Debian "instable" sous cela, mais c'est une solution loin d'être idéale.
Si vous installez GCC à partir des sources, assurez-vous de ne pas l'installer sur /usr
et ça ne gâchera rien. Si vous l'installez en tant que votre propre utilisateur, pas root
, il n'y a aucune chance de gâcher le système.
Voir http://gcc.gnu.org/wiki/InstallingGCC pour la configuration minimale quasi-idiot-proof.
J'ai différentes versions construites en tant qu'utilisateur et installées dans ~/gcc/4.X
pour divers X.
La seule chose à savoir sur l'utilisation de cette configuration est que les bibliothèques partagées pour la nouvelle version ne sont pas dans le chemin de recherche par défaut de l'éditeur de liens dynamique, vous devez donc utiliser LD_LIBRARY_PATH
ou une autre solution pour s'assurer que les exécutables trouvent les bibliothèques à partir de la 4.8, voir libstdc ++ FAQ et la page à laquelle il renvoie dans le manuel
J'utilise un appel de script wrapper g++11
qui appelle simplement la nouvelle version de GCC avec -std=gnu++11
et transmet un indicateur à l'éditeur de liens lui indiquant de définir le chemin d'accès aux 4,8 bibliothèques de l'exécutable:
$HOME/gcc/4.8/bin/g++ -Wl,-rpath,$HOME/gcc/4.8/lib64 -std=gnu++11 -Wall -Wextra -g "$@"
J'ai eu le même problème et je ne voulais pas passer entièrement aux tests.
Jessie (testing) contient maintenant g ++ - 4.8 qui est compatible avec C++ 11.
J'ai utilisé l'épinglage apt de la manière suivante:
Une source pour jessie a été ajoutée à /etc/apt/sources.list:
deb http://ftp.uk.debian.org/debian/ jessie main non-free contrib
/ etc/apt/preferences a été modifié comme tel:
Package: *
Pin: release n=wheezy
Pin-Priority: 900
Package: gcc*
Pin: release n=jessie
Pin-Priority: 910
Alors,
$ Sudo aptitude update
$ Sudo aptitude install gcc/jessie
À ce stade, j'ai sélectionné la deuxième option présentée pour résoudre complètement les dépendances.
Debian a le paquet sous le nom gcc-4.8 (ou pour le compilateur c ++, g ++ - 4.8). L'installation de ces packages ne gâchera pas votre système d'exploitation, tant que vous ne le renommez pas en g ++. Le package est cependant répertorié comme expérimental.
Les informations sur le package sont ici .
Mise à jour: g ++ - 4.8 est maintenant dans testing , mais un paquet mis à jour est dans nstable
Rapides:
Il suffit de passer aux tests, il est solide et vous propose plusieurs versions simultanées de gcc. Similaire pour Ubuntu, le 12.10, j'ai gcc/g ++ 4.4, 4.5, 4.6 et 4.7 en parallèle.
Essayez l'archive des backports Debian, elle peut avoir un port de gcc 4.8.
Utilisez la virtualisation: je préfère libvirt/kvm qui est incroyablement léger sous Linux car il est basé sur le noyau. Mon serveur AMD64 a deux autres installations 32 bits pour cette raison.
Pas vraiment une SO question ...
Avez-vous essayé chroot pour installer une nouvelle version de Debian?
vous pouvez jouer sans crainte de briser votre système de travail.
installez une version Debian qui prend en charge la version gcc souhaitée.
installez une version gcc manuellement sans affecter votre système de travail. http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Linux/Chroot