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. 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.
    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. 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. 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. 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. set|grep LIBRARY : (ne réponds rien)

              unset LD_LIBRARY_PATH ; ldd WordMaker : not a dynamic executable
              1. Contributeur
                peut-être un problème de librairies
                que répond
                set|grep LIBRARY

                essayer
                unset LD_LIBRARY_PATH ; ldd WordMaker
                1. Contributeur
                  not a dynamic executable
                  bizarre, ça contredit la réponse de file
                  est-ce que le fichier serait corrompu ?
                  1. Résultat de 'echo $LD_LIBRARY_PATH' :

                    /usr/local/lib:/usr/lib

                    Résultat de 'ldd WordMaker' :

                    not a dynamic executable
                    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.