Problème d'édition de lien
Bonjour,
Mon problème est surement classique mais je me tape un "undefined reference to" lors d une compilation.
Les fichiers en jeu
le makefile:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
all: finger.exe
finger.exe: restaure.h finger.c restaure.o
gcc finger.c restaure.o -o finger.exe -lm
restaure.o: mcutil.h mcimage.h mccodimage.h restaure.h restaure.c mccodimage.c mcimage.c
gcc -c restaure.c mccodimage.c mcimage.c -o restaure.o
clean:
rm -f *.o
rm -f *~ |
finger.c (contient le main)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
#include <stdio.h>
#include <sys/types.h>
#include "restaure.h"
int main(int argc,char *argv[])
{
if(argc !=3)
{
fprintf(stderr, "usage: %s empreintescannée.pgm squeletteempreinte.pgm \n", argv[0]);
return 0;
}
restaure(argv[1],0.7,argv[2]);
return 0;
} |
restaure.h
Code:
1 2 3 4 5
|
extern int lrao3(struct xvimage *, double, double **);
extern void lgeneslin(int, int *, int *);
extern void lgenmask(int, struct xvimage **);
extern int restaure(char *, double, char *); |
restaure.c contient ttes les fonctions du restaure.h et son .o se compile a priori normalement.
Voila l erreur obtenu
Code:
1 2 3 4 5 6 7 8 9 10 11
|
pascal@Pascal:~/PR302/Finger/Main/finger$ make all
gcc -c restaure.c mccodimage.c mcimage.c -o restaure.o
restaure.c: In function restaure:
restaure.c:335: attention : pointer targets in assignment differ in signedness
restaure.c:376: attention : incompatible implicit declaration of built-in function memcpy
gcc finger.c restaure.o -lm -o finger.exe
/tmp/ccw74nPq.o: dans la fonction « main »:
finger.c:(.text+0x67): référence indéfinie vers « restaure »
collect2: ld a retourné 1 code d'état d'exécution
make: *** [finger.exe] Erreur 1 |
A noter aussi que si dans finger.c je remplace le include restaure.h par restaure.c ca marche nikel.
Merci d avance de votre aide car la j arrive plus a rien voir ...:(