Mon système intégré Debian 7 armel utilise actuellement g ++ 4.6 et j'aimerais passer à g ++ 4.9 pour utiliser les nouvelles fonctionnalités de C++ 11. Comment je fais ça?
Le contenu actuel de mes sources.list est:
deb http://security.debian.org/ wheezy/updates main deb-src http://security.debian.org/ wheezy/updates main deb http://ftp.us.debian.org/debian Wheezy principal non-libre deb-src http://ftp.us.debian.org/debian Wheezy principal non-libre
Une simple installation par apt-get du paquet ne fonctionne pas:
root @ arm: ~ # apt-get install g ++ - 4.9 Lire les listes de paquets ... Fait Construire un arbre de dépendance État de lecture information ... Fait E: Impossible de localiser le paquet g ++ - 4.9 E: Impossible de trouver un paquet par expression rationnelle 'g ++ - 4.9'
Une autre solution consiste à installer les packages g ++ 4.9 à partir de "Jessie", selon cet article de blog . En bref, vous devez dire à APT d’utiliser le dépôt Jessie lors de l’installation du nouveau G ++. Commencez par mettre à jour le Wheezy actuel:
Sudo apt-get update
Sudo apt-get upgrade
Faites ensuite une sauvegarde :-) et éditez /etc/apt/sources.list
pour remplacer la chaîne "wheezy"
par "jessie"
:
Sudo cp /etc/apt/sources.list /etc/apt/sources.list.WHEEZY
Sudo vi /etc/apt/sources.list
Maintenant, mettez à jour la liste des paquets et installez la version 4.9 de GCC/G ++:
Sudo apt-get update
Sudo apt-get install gcc-4.9 g++-4.9
Après cela, revenez à la liste de paquets "d'origine":
Sudo cp /etc/apt/sources.list.WHEEZY /etc/apt/sources.list
Sudo apt-get update
Cela laisse le GCC d'origine, G ++, en place. Si vous souhaitez compiler avec la version 4.9, définissez les variables CC
et CXX
env en conséquence ou appelez les compilateurs en tant que gcc-4.9
ou g++-4.9
de manière explicite.
Probablement nécessaire: packaging-dev
, ubuntu-dev-tools
(cela vous permet de construire un paquet dans un chroot sans polluer votre système avec des paquets dépendants de la construction)
Sudo pbuilder create
si vous voulez compiler une distribution spécifique (pbuilder utilise la version du système de compilation dans un chroot), vous pouvez utiliser pbuilder-dist [precise/oneric/trusy/etc ...] create
pull-debian-source gcc-4.9 [4.9.0-6]
une révision debian spécifique est facultative, mais peut être utile si vous souhaitez extraire des révisions expérimentales/unstable/testing/stable , vous pouvez également extraire des distributions spécifiques à ubuntu en les ajoutant à sources.list en tant que deb-src et en utilisant Sudo apt-get src
Sudo pbuilder build gcc-4.9_4.9.0-6.dsc
Dans les fichiers téléchargés, il y a un fichier .dsc. Pour le dernier gcc, c’est gcc-4.9_4.9.0-6.dsc, qui est un fichier descripteur de paquet. .orig.tar. [gz/xz] est l'archive source.
mkdir /convenient/place/for/repo
cp /var/cache/pbuilder/result/* /path/to/repo
cd /path/to/repo
apt-ftp archive packages . > Packages
Sudo echo "deb [trusted=yes] file:/local/repo/Packages ./" > /etc/apt/sources.list.d/gcc-repo.list`
Notez que vous pouvez également effectuer cette étape avec les fichiers .deb téléchargés de n'importe où (ignorez les étapes 1 à 3).
apt-get update; apt-get install gcc-4.9 g++-4.9
Au lieu d'utiliser les packages Jessie, il serait préférable de vérifier si le portage a été rétrocédé à Wheezy. Ajoutez ceci à votre /etc/apt/sources.list
:
deb http://http.debian.net/debian wheezy-backports main
et faire un apt-get update
et voir si vous pouvez l'installer alors.
Il y a un gcc-4.9-backport maintenant.
Sudo apt-get update && Sudo apt-get install gcc-4.9-backport