Faire tourner une librairie 32bits sur un 64b

kiki_calisto -  
kilian Messages postés 8854 Statut Modérateur -
Bonjour,

Voici mon souci, je suis sous Linux avec un noyau x86_64.
J'ai une bibliothèque compilé pour x86 dont je n'ai pas les sources. Et j'ai besoin de l'utiliser pour compiler une application en x86_64. Le problème est que bien entendu à l'édition de liens, ld m'indique que la librairie n'est pas faite pour cette architecture et qu'il ne la prend pas en compte.

J'ai essayé plusieurs choses :
-> Décompiler la bibliothèque (pas de soucis de propriété intelectuelle, ça appartient à mon labo). Mais je n'ai pas trouver d'outils capable de bien le faire (le code est assez gros car il contient un parseur et un lexeur).
-> Essayer de changer les options de "ld" pour modifier l'architecture sélectionné, mais ça n'as pas marché.

Avez-vous une idée, ou bien même une piste.. ?
A voir également:

1 réponse

kilian Messages postés 8854 Statut Modérateur 1 526
 
Salut,

Lis ceci ça pourrait te donner une direction:
http://www.commentcamarche.net/faq/sujet 9185 compiler tester en 32 bits sur ubuntu x86 64

Si ta librairie s'appelle libprout.so dans le repertoire courant, essaie de lier ton fichier machin.c comme ceci:
gcc -m32 machin.c -o machin -L./ -lprout


Il faut bien sûr que les librairies dont dépend la tienne soient compilées également en 32 bits.
Si c'est juste la libc6 ya pas de soucis, suis l'astuce, sinon faudra ruser.
0