Problème d'edition de lien

Problème d'edition de lien - ASM - Programmation

Marsh Posté le 05-04-2008 à 15:33:33    

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 :
  1. all : principal
  2. tris.o : tris.s
  3. gcc -c tris.s -g -o tris.o
  4. principal.o : principal.s tris.o
  5. gcc -c tris.o principal.s -g -o principal.o
  6. tri_rapide : principal.o tris.o
  7. gcc -a tris.o principal.o -g -o tri_rapide
  8. clean :
  9. 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  :hello:
 
edit : je peux mettre mon code commenté en assembleur si besoin.


Message édité par debeman le 05-04-2008 à 15:36:32
Reply

Marsh Posté le 05-04-2008 à 15:33:33   

Reply

Marsh Posté le 05-04-2008 à 17:25:33    

Problème résolu : j'ai pas le droit de generer tri_rapide comme je l'ai ecrit dans mon makefile pourquoi je ne le sais pas
avec ce makefile ca marche, et mon programme marche également  :love:  

Code :
  1. all : tri_rapide
  2. tris.o : tris.s
  3. gcc -c tris.s -g -o tris.o
  4. tri_rapide : principal.s tris.o
  5. gcc -a tris.o principal.s -g -o tri_rapide
  6. clean :
  7. rm -rf *.o


 
voila une erreur toute conne

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed