Bonsoir,
J'aurais besoin de votre aide pour rendre compatible une manip sous linux en mac OS X ...
j'ai deux fichiers : canevas.asm et io.cpp
la commande sous linux est simple "nasm -f elf canevas.asm" puis "g++ canevas.o io.cpp"
Par contre sous mac os je rencontre ces erreurs la en faisant "nasm -f macho canevas.asm" puis "g++ canevas.o io.cpp":
"/usr/libexec/gcc/i686-apple-darwin8/4.0.1/ld: Undefined symbols:
_main
afficherUns32"
Il y a donc sans doute un problème de compatibilité de code. Etant donné que j'utilise du nasm ça devrait être compatible pour la plupart des trucs entre macos et linux. pour l'erreur concernant le main j'ai su la contourner en rajoutant "GLOBAL _main" et "_main:" au lieu de précédemment "GLOBAL main" et "main:"
Par contre pour EXTERN afficherUns32 j'ai du mal....
J'ai mis les fichiers en pièces jointes.
Le programme doit afficher le contenu des registre sous une certaine forme c'est pour ça que j'utilise le io.cpp et le but de l'exercice c'est d'utiliser ces deux fichiers et pas de faire la totalité du code en assembleur.
J'ai cherché dans les man page et sur l'article d'ibm concernant la différence entre GAS et ASM mais je n'ai rien trouvé.
Merci d'avance pour votre aide
Partager