Ignorer une erreur incompatible lors de la liaison

Je comstack sur une architecture 64 bits avec le compilateur Intel C. Le même code est bien construit sur une architecture Intel 64 bits différente.

Maintenant, lorsque j’essaie de comstackr les fichiers binarys, le message “Saut incompatible ../../libtime.a” s’affiche ou indique le type d’heure libtime.a que j’ai archivé (à partir de fichiers d’object compilés) pas compatible. J’ai googlé et il m’a semblé que c’était généralement le résultat d’un changement de 32 -> 64 bits ou quelque chose du genre, mais le compilateur C Intel ne semble pas prendre en charge une option de mémoire -64 ou autre au moment de la compilation. Comment résoudre et corriger cette erreur?

Vous ne pouvez pas mélanger du code compilé 64 bits et 32 ​​bits. Les instructions de configuration pour Linux sont ici .

Vous devez déterminer le processeur cible de la bibliothèque et du nouveau code que vous créez. Cela peut être fait de plusieurs manières, mais la plus simple est:

$ objdump -f ../../libtime.a otherfile.o

Pour libtime, cela imprimera probablement des tas de choses, mais elles devraient toutes avoir le même processeur cible. Assurez-vous que otherfile.o (auquel vous devez substituer l’un de vos fichiers object) possède également la même architecture.

gcc a les drapeaux -m32 et -m64 pour passer de la cible par défaut à un processeur similaire avec un registre et une largeur de mémoire différents (généralement x86 et x86_64), que le compilateur Intel C peut également avoir.

Si cela n’a pas été utile, vous devez inclure les commandes (avec tous les indicateurs) utilisées pour tout comstackr, ainsi que des informations sur les systèmes sur lesquels chaque commande était exécutée.