Bonjour a tous, je viens de finir de tapper mon code en asm gnu ( normalement il n'y a pas d'erreur ou du moins je l'espere ) et je veux compiler le tout et tester mon programme.
Mon programme construit un tableau d'entier et demande a l'utilisateur combien d'entier il veut rentrer et lui demande ensuite quels entiers il veut rentrer, ensuite j'appelle une fonction de tris de tableau : quicksort qui est censé trié mon tableau et ensuite j'affiche le tableau trié.
Alors dans mon principal.s j'ai le code de ce qui est écrit au dessus avec juste un call quicksort la fonction étant défini dans tris.s .
Dans tris.s j'ai les fonctions quicksort et partitionner ( partitionner étant appelée dans quicksort pour ceux qui connaissent pas alle voir sur wikipedia )
pour compiler j'ai fait un makefile voici le code :
Code :
- all : principal
- tris.o : tris.s
- gcc -c tris.s -g -o tris.o
- principal.o : principal.s tris.o
- gcc -c tris.o principal.s -g -o principal.o
- tri_rapide : principal.o tris.o
- gcc -a tris.o principal.o -g -o tri_rapide
- clean :
- rm -rf *.o
|
Et je le lance pour générer l'executable j'ai le droit à :
make
cc principal.o -o principal
principal.o: In function `suiteaff':
/home/ben/ensimag/logbase/tp2/principal.s:70: undefined reference to `quicksort'
collect2: ld a retourné 1 code d'état d'exécution
make: *** [principal] Erreur 1
( suiteaff est une fonction dans mon code asm )
je voudrais deja savoir si mon makefile est correct et ensuite savoir si quelqu'un avait une idée pour resoudre ce probleme d'edition de lien ( a part la solution mettre tout dans le meme .s )
merci d'avance
edit : je peux mettre mon code commenté en assembleur si besoin.
Message édité par debeman le 05-04-2008 à 15:36:32