Error : Exec format error

Bonjour à tous,

Je suis actuellement sur une plateforme restreinte XUbuntu (Carte Beaglle Board ) avec un Ubuntu de 4Go. Pour mon stage, j'ai besoin de faire fonctionner un programme de traitement d'image : FabMap.

Comme le readme le mentionne, je me rends dans le dossier /bin du répertoire FAbMap et lorsque j'exécute la commande demandée : ./WordMaker WordMaker_BatchConfig.moos un message d'erreur apparaît :

./WordMaker : Exec format error. Binary file not executable.

J'ai regardé sur internet et essayé plusieurs choses :

- changé les permissions avec chmod u+x
- essayé de mettre "un petit peu" à jour le Xubuntu embarqué mais cela m'est interdit.

Avez-vous d'autres idées ?
Merci d'avance

<Xubuntu : Xfce 4>, internet disponible.

14 réponses

  1. Contributeur
    voir chez FabMap ce qu'ils proposent comme exécutables.
    que répond la commande file <exécutable> d'un programme compilé pour ARM ?
    1. Résultat de ' file WordMaker':

      WordMaker: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically (uses shared libs), for GNU/Linux 2.6.9, not stripped.
      1. Résultat de 'echo $LD_LIBRARY_PATH' :

        /usr/local/lib:/usr/lib

        Résultat de 'ldd WordMaker' :

        not a dynamic executable
        1. Contributeur
          not a dynamic executable
          bizarre, ça contredit la réponse de file
          est-ce que le fichier serait corrompu ?
          1. Contributeur
            peut-être un problème de librairies
            que répond
            set|grep LIBRARY

            essayer
            unset LD_LIBRARY_PATH ; ldd WordMaker
            1. set|grep LIBRARY : (ne réponds rien)

              unset LD_LIBRARY_PATH ; ldd WordMaker : not a dynamic executable
              1. Contributeur
                essaye de compiler un petit code en static et dynamic
                $ echo -e '#include <stdio.h>\nmain(){printf("hello world\\\\n");}'  > x.c
                $ gcc -o x x.c
                $ gcc -o xs -static x.c
                

                que répondent les commandes
                file x xs ; ldd x xs
                1. Je pense que c'est tout simplement parce que le programme a été prés compilé sous une architecture autre que celle de la Beagle board. Pour pouvoir le faire fonctionner il faudrait le recompiler sur la BB. Je viens de tester avec un autre programme qui me disais la même erreur. Je l'ai recompilé, il fonctionne maintenant. Or, je n'ai pas les sources de FabMap... Seulement les fichiers exe, donc je suis cuit . Non ?
                  1. cat /proc/cpuinfo:

                    Processor : ARMv7 Processor rev 3 (v71)
                    BogoMIPS : 484.21
                    Features : swp half thumb fastmult vfp edsp thumbee neon
                    CPU implementer : 0x41
                    CPU architecture : 7
                    CPU variant : 0x1
                    CPU part : 0xc08
                    CPU revision : 3

                    Hardware : OMAP3 Beagle Board
                    Revision : 0020
                    Serial : 0000000000000
                    1. file surf :
                      surf: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped.

                      Merci beaucoup en tout cas, cela est donc dû à une version de l'exécutable pas adpaté à mon système.