Construire 32 bits sur 64 bits de Linux à l'aide d'un automake script de configuration?
Je suis en utilisant un système 64 bits, mais que vous voulez un jeu de 32 bits binaires. Quelles options dois-je passer à un script de configuration pour générer un 32bit/x86 makefile?
- Plus un. Je suis en train de construire Git pour Solaris.
uname -m
retournei86pc
. Tous les 10 ou si les bibliothèques dépendantes a mal détecté la plate-forme. Seulement OpenSSL correctement identifié comme x86_64.
Vous devez vous connecter pour publier un commentaire.
En passant l'argument suivant pour configurer le script m'a permis de construire le 32 bits bibliothèque sur 64 bits Linux
configure: error: C++ compiler cannot create executables
.De Jack réponse est incomplète.
Vous avez besoin de compilateur/libc prise en charge de 32 bits de la compilation. Dans certaines distributions comme Ubuntu, ce que vous devez faire est d'installer des paquets
gcc-multilib
et/oug++-multilib
:Ensuite, vous pouvez appeler configurer comme vous l'avez dit, specifyiong un hôte 32 bits et en passant de 32 bits indicateurs de compilation:
Si vous n'avez pas multilib installé, vous obtiendrez un message d'erreur comme
configure: error: C compiler cannot create executables
lors du passage de la-m32
drapeau.--build
, pas--host
.--host
doit être utilisé si et seulement si vous êtes la construction d'un compilateur. Il fonctionne encore, car il y a beaucoup de personnes qui ne sont pas RTFM et écrire des scripts qui utilisent--host
au lieu de--build
, et les autotools les gens ont cassé assez de choses déjà.J'ai eu plus de succès par la fixation d'un compilateur personnalisé à la place. De cette façon, toutes les configurer les tests, même ceux à l'aide personnalisée CFLAGS, a fonctionné correctement:
Vous avez encore besoin de les versions 32 bits de toutes les bibliothèques de l'application utilise de cours, de sorte que les éventuelles erreurs de bibliothèques manquantes sont se référant à la 32-bits.
En supposant que gcc/g++:
Une alternative pour les choses décrites ci-dessus (si vous avez) pour utiliser un dédié x86 compilateur. La configuration de la ligne serait alors comme ça (j'ai nommé le x86-outils après le modèle "<nom_outil>-x86"):