Comment créer un 32 bits partagée de la bibliothèque sur une plate-forme 64 bits avec les autotools

J'utilise les autotools pour construire mon système, qui se compose principalement d'une bibliothèque. Sur 64 bits Red Hat plates-formes, j'ai besoin d'être en mesure de produire une bibliothèque capable de travailler sur 32 bits Red Hat plates-formes.

Quand j'ajoute -m32 à la compilation des lignes tout fonctionne bien pour produire un statique (.a) de la bibliothèque, mais dès que j'essaie de créer une partagée la bibliothèque, j'obtiens le message d'erreur comme ceci:

/usr/bin/ld: warning: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/crti.o' is incompatible with i386 output
/usr/bin/ld: warning: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-redhat-linux/4.1.2/crtbeginS.o' is incompatible with i386 output  
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/crtbeginS.o: In function `__do_global_dtors_aux':  
crtstuff.c:(.text+0x29): undefined reference to `__DTOR_END__'  
collect2: ld returned 1 exit status' 

Je peux voir le problème c'est que c'est 64-bit objet les fichiers de /usr/lib64 au lieu de le corriger 32 bits à partir de /usr/lib (ils y sont très bien), mais je ne peux pas comprendre comment le corriger.

  • ce fil a quelques idées mail-archive.com/[email protected]/msg11662.html
  • Vous obtenez le mal de l'irtc.o Voir cette question précédente au sujet de l'inspection de l'include path. Êtes-vous sûr que vous avez une version 32 bits de l'irtc.o dans votre chemin de la bibliothèque? (Et qu'il est présent dans le chemin devant la version 64 bits se produit).
  • Aussi loin que je peux dire que le chemin est intégrée dans le compilateur/linker. Depuis que j'ai envie de construire soit 32 ou 64-bit versions, en fonction des arguments pour les autotools script de configuration, la reconstruction de l'outils n'est pas une option. J'ai aussi besoin de cela pour travailler sur mes clients des machines.
  • En effet, la version 32 bits de glibc-devel installé?
InformationsquelleAutor John Gordon | 2011-03-21