2010-03-02 8 views
0

Lors de l'exécution de l'une de mes applications C++, un message bizarre s'affiche sur l'une de mes boîtes Cento x64, où une autre machine avec une configuration similaire exécute parfaitement l'application. .Erreur d'exécution binaire 64 bits sur les Centos 64 bits

message d'erreur:

/myapp: erreur lors du chargement des bibliothèques partagées:/myapp: mauvaise classe ELF: ELFCLASS64

NB: 'myapp' est pas une bibliothèque partagée (.so), mais application réelle elle-même.

Toutes les bibliothèques tierces liées à myapp ont également été compilées sur une machine sur laquelle j'exécute l'application. J'ai compilé les bibliothèques libmysqlpp, libthrift et libACE et tout ce qui est nécessaire a été installé via yum.

+0

Que 'ldd myapp' vous offre? Est-ce que tout est résolu? Avez-vous reçu des avertissements lors de la compilation et de l'association de 'myapp'? – vpram86

Répondre

0

Tout est résolu.

En fait, je tente de charger mon application à l'aide dynamique ld-linux.so.2 afin d'utiliser le dossier de bibliothèque personnalisée mais ld-linux.so.2 exécute uniquement les binaires 32 bits. Maintenant, je suis en utilisant ld-linux-x86-64.so.2 et tout semble bon :)

0

Il y a un excellent article de fond sur le sujet plus large (par exemple en cours d'exécution 32 bits compilé des applications sur les machines 64 bits) à http://www.debian-administration.org/articles/534 intitulé "Exécution d'applications 32 bits sur Debian GNU/Linux 64 bits". La réponse courte est le ia32 Suite.