Salut !
Tout d'abord un grand bravo pour ce site très complet et ce forum très actif !
Voici mon problème : j'ai une fichier C et un fichier assembleur. Dans le premier un appel à une fonction, et dans l'autre le code de la fonction.
Voici mon fichier C :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 extern void MyFunc(void); int main() { MyFunc(); return 0; }
et mon fichier assembleur ressemble à ceci :
Je compile chaque fichier en .o (avec GCC et NASM), puis j'essaye de linker le tout en fichier binaire avec LD, et là il me sort "undefined reference to _MyFunc"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13BITS 32 GLOBAL _MyFunc _MyFunc: push ebp pusha ; ... ; Ici le code de la fonction ; ... popa pop ebp ret
J'ai déjà pourtant revérifié le code des centaines de fois, la déclaration de la fonction aussi bien dans le fichier C qu'en assembleur, rien n'y fait. Je sais que l'on doit mettre un _ (underscore) devant le nom en asm, mais que je le fasse ou non ca foire !
Aidez-moi svp je suis completement bloque il faut que je termine cette partie du prog pour faire la suite ...
Merci beaucoup
Arnaud
Partager