Forum Linux.debian/ubuntu Cross compilation ARM

Posté par  .
Étiquettes :
1
2
juin
2010
Bonjour,

j'ai besoin de faire une cross compilation sur un systeme debian pour plateforme ARM,

j'ai installé les binaires de emdebian (gcc-4.3-arm-linux-gnu ...)

je peux compiler sans problème un helloworld qui marche sur la plateforme ARM,

cependant, comment fait on pour faire de la cross compilation utilisant des libraries (ex gtk, qt ...) ?

autre question, je n'ai pas bien compris le fonctionnement de apt-cross, quelqu'un sait-il l'utiliser ?

merci
  • # Toolchain et bibliothèques

    Posté par  . Évalué à 2.

    Pour utiliser de bibliothèque (qtopia, gpe, ...) sur une architecture autre que celle de l'hôte, 2 solutions:

    O La compilation de ces bibliothèques via le toolchain (arm-elf-gcc par exemple) puis réaliser des programmes liant avec ces bibliothèques (qui ne marche que sur la cible ARM)
    O L'utilisation de binaire pré-construit: il suffit d'installer Debian sur la cible, et ensuite de profiter d'un APT natif.

    Concernant APT-cross, je connais pas.
    • [^] # Re: Toolchain et bibliothèques

      Posté par  . Évalué à 2.

      Salut,

      je n'ai pas compris la 2ème solution :

      L'utilisation de binaire pré-construit: il suffit d'installer Debian sur la cible, et ensuite de profiter d'un APT natif.

      Installer le binaire pré-construit sur la cible, ça c'est bon, mais je ne peux pas installer ce même bianire pour ARM sur la debian x86 ?
      • [^] # Re: Toolchain et bibliothèques

        Posté par  . Évalué à 2.

        Ça fait longtemps que je me suis amusé à ce p'tit jeu de compilation croisée alors prend ce qui suit avec des pincettes :

        Installer le binaire pré-construit sur la cible, ça c'est bon, mais je ne peux pas installer ce même bianire pour ARM sur la debian x86 ?

        Tu ne pourras pas exécuter le binaire ARM su la debian x86 (processeur incompatible), donc il n'y a pratiquement aucun intérêt de l'y installer. (sauf si tu aimes t'amuser à configurer des chroot et à faire joujou avec Qemu dedans, mais ceci est une autre histoire).

        Par contre, tu peux te créer des dossiers sur ta debian x86 concernant les en-têtes et les bibliothèques dynamiques de tes applications ARM pour ensuite les utiliser avec ton compilateur croisé arm-linux-gcc. Le hic, c'est qu'il ne faut pas mélanger ces bibliothèques avec celle de ta debianx86 et qu'il faut configurer ta "toolchain" (compilateur, linker, ...) pour qu'elle parte chercher ces en-têtes et bibliothèques ARM au bon endroit (-L, -I, manpages, ...). Je n'en connais pas plus sur ce point, désolé.
        • [^] # Re: Toolchain et bibliothèques

          Posté par  . Évalué à 3.

          En faite, j'ai pas été très précis:

          1) Tu installe debian ARM sur ton ARM.
          2) Tu installe des paquets debian ARM directement depuis ton ARM
          3) Profit !
    • [^] # Re: Toolchain et bibliothèques

      Posté par  . Évalué à 1.

      Aussi, pour compiler une bibliothèque avec le toolchain, par exemple qt, il faut également compiler toutes les bibliothèques dont qt à besoin une par une ? (libx11 ..)
  • # pkg-config, libtool...

    Posté par  (site web personnel) . Évalué à 3.

    - il faut les libs compilées pour l'archi cile (arm) et devel files des différentes librairies que tu veux utiliser (dans /usr/arm-linux-gnueabi). pour ça: apt-cross ou récupération des packages debian armel que tu dpkg-deb -x dans /usr/linux-arm-gnueabi/.

    - utilise pkg-config, libtool. attention, pkg-config 0.23 est requis IIRC, donc à upgrader si tu utilise debian lenny.

    - il peut être nécessaire de patcher libtool et d'utiliser certains flags (inst-prefix-dir par exemple)

    tu peux trouver de la doc sur http://trac.hackable1.org
  • # Problème avec Qt

    Posté par  . Évalué à 1.

    J'ai un soucis avec la librairie libqt4-dev, lorsque je fais un QApplication app(argc, argv); dans un programme, que je compile en natif dans qemu ou avec le toolchain arm, j'obtiens un segmentation fault à la création de QApplication.

    Surement un problème de prog dans la librairie, mais ça me parait bizare.

    je vais essayer avec une version de qt plus recente en installant une squeeze.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.