J'ai développé un programme C sur Mac OS X avec Xcode. Celui-ci se compose de trois fichiers: main.c, functions.h et functions.c. J'aimerais passer sous linux et créer un Makefile afin de me simplifier la vie. Malheureusement je n'arrive pas à le faire compiler le projet, pourtant j'ai pas hésité à me documenter sur le sujet. A titre d'information, les deux fichiers main.c et functions.c incluent le fichier functions.h. Ce dernier fichier commence comme suit:
Mon Makefile est le suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include<stdio.h> #include<mysql.h> #include<memory.h> #include<string.h> #include<stdarg.h> #include<stdlib.h> #include<time.h> #include<sys/queue.h> #include <libstree.h>
A vrai dire je ne comprend pas ce qui cloche. Le message d'erreur renvoyé est le suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 CC := gcc CFLAGS := -Wall -lz -lm LFLAGS := -lmysqlclient -L/usr/local/lib/ -lstree INCDIR := -I/usr/include/mysql/ -I/usr/local/include/ all: $(CC) $(CFLAGS) $(IFLAGS) -c functions.c functions.h $(INCDIR) $(CC) $(CFLAGS) $(IFLAGS) -o $@ main.c functions.h $(INCDIR) clean: rm -f total *.o
Qu'est ce qu'il ne vas pas dans mon makefile.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 gcc: -lz: linker input file unused because linking not done gcc: -lm: linker input file unused because linking not done /tmp/ccEATgGt.o: In function `main':main.c:(.text+0x4f): undefined reference to `connect_db' :main.c:(.text+0x65): undefined reference to `get_consult' :main.c:(.text+0x7b): undefined reference to `mysql_query' .............
Partager