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:

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>
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
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
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
 
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'
.............
Qu'est ce qu'il ne vas pas dans mon makefile.