Bonjour,
Je mets copie ici du post déposé sur rasbian-france car après 10 jours et 21 lectures, je n’ai toujours pas la moindre piste .
Je ne pense pas être hors sujet ici car c’est bien de la programmation, sous Debian, pour Debian
- Le contexte:
Une tour Debian 64 bits (encore Jessie).
Sur cette tour, une Machine Virtuelle (VM) Debian Strecht 64 bits à laquelle j’alloue 3 cœurs et 8 G0. J’ai opté pour une VM pour tester après avoir ruiné ma configuration à coup de dépots, git et librairies 32 bits.
-
L’objectif:
Installer une toolchain pour cross-compiler pour des raspberries (B+ actuellement). Je souhaite d’abord maîtriser en ligne de commande avant de switcher vers un IDE, genre éclipse. -
Mes essais:
J’ai testé beaucoup de tutoriels (y compris de GNU Linuxmag ou de Hackable, pour arriver à des résultats fonctionnels mais souvent datés (choix du kernel, des libc, du GCC …).
Sans être un obsédé de la dernière version, je pense qu’il faut essayer de rester, au minimum, dans la version majeure de ces briques de base (pour les patchs de sécurité ou les fonctionnalités, par exemple).
Jusqu’à présent, tous les GCC et Linaros que j’ai pu tester, acceptaient la directive sysroot=…/…/… , ce qui me permettait d’utiliser les librairies et les includes copiés depuis mon Raspberry.
Pour avoir la maîtrise des versions, j’ai testé de créer ma toolchain à partir de CT-NG. Après ajouts de moult éléments, j’obtiens bien une toolchain fonctionnelle, récente MAIS:
Elle n’accepte plus la directive sysroot= ou ne trouve pas les bonnes bibliothèques ou headers. Cela rend impossible toute compilation autre que le classique “hello.world” ce qui n’est pas d’une grande utilité. -
Analyse du problème:
Aidé par mon ami google et après des pages et des pages de lecture (en anglais), il semblerait que ce problème provienne du passage à multiarch de Raspbian (jessie) et que le compilo et/ou le linker ne retrouve pas ses billes.
Une des solutions proposées est de compiler la toolchain en statique (ce que je viens de faire) et de la faire fonctionner dans un chroot. -
Question:
Qu’utilisez-vous pour cross-compiler avec une version décente des logiciels de base sachant que la Rasbian Stretch vient avec un kernel 4.9.41+, un GCC 6.3.0 (libc 2.24-11 pour Jessie).
Merci de m’avoir lu jusqu’au bout.
Sylvain