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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ...