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:
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 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 *~
restaure.h
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.c contient ttes les fonctions du restaure.h et son .o se compile a priori normalement.
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 *);
Voila l erreur obtenu
A noter aussi que si dans finger.c je remplace le include restaure.h par restaure.c ca marche nikel.
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
Merci d avance de votre aide car la j arrive plus a rien voir ...![]()
Partager