Question

Comme le dit le titre, j'ai le programme C respecté et créé un binaire dans une machine 64 bits. Ce travail binaire sous 32 bits?

Était-ce utile?

La solution

Les binaires 64 bits ne peuvent pas fonctionner sur un système d'exploitation 32 bits. Si file rapports ELF 64-bit, vous avez un binaire 64 bits.

Afin de construire des binaires 32 bits sur un Linux 64 bits, vous avez besoin de passer -m32 à gcc. Vous devez également installer des bibliothèques 32 bits (sudo apt-get install libc6-dev-i386).

Autres conseils

La machine de compilation n'a pas d'importance. Ce qui importe, c'est: le code est-il généré de 32 bits (réponse: oui) ou 64 bits (réponse: non).

Cela fonctionnera-t-il sur une machine 32 bits? Un avec un CPU qui ne prend pas en charge le mode 64 bits? Non.

Cela fonctionnera-t-il sur une machine virtuelle 64 bits sur un système d'exploitation natif 32 bits? Oui, d'après mon expérience.

Un résultat surprenant est que les machines virtuelles 64 bits peuvent être exécutées sous un système d'exploitation hôte 32 bits, à condition que le CPU soit capable et que vous ne voulez pas allouer trop de RAM (> 2G ou à peu près) à l'invité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top