Bonjour,


je me suis fais un petit projet de dev en c,
mais j'ai un problème avec la compilation :

j'ai cette erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
--- Cr�ation ex�cutable : bin/main  ---
lib/main.o: In function `elm_main':
/home/issa/Bureau/programmation/svn/eflcodeexample/SYSTEM/e-Julia/main.c:73: undefined reference to `printA'
/home/issa/Bureau/programmation/svn/eflcodeexample/SYSTEM/e-Julia/main.c:74: undefined reference to `cb_move'
collect2: ld returned 1 exit status
make: *** [bin/main] Erreur 1
Voici mon makefile j'ai bien déclarer mon fichier libJulia dans le makefile :

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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
 
#--------------------------------------
# makefile pour C
#
# IMPORTANT
# Ne pas oublier de faire:
#   make depend
# apres ajout d'un nouveau fichier source (.h) ou (.c)
# ou apres l'ajout d'un #include dans un source
#--------------------------------------
 
#--------------------------------------
#compilateur
#--------------------------------------
 
C = gcc 
 
#--------------------------------------
# partie à compléter
#--------------------------------------
 
#nom du fichier du repertoire principal contenant la fonction main
MAIN_C_SOURCES = main
#nom du répertoire contenant les autres fichiers source
DIR_SOURCES      = src
#nom des autres fichiers sources du repertoire DIR_SOURCES
OTHERS_C_SOURCES   = libJulia
#répertoire contenant les .h
DIR_INCLUDE      = include
#répertoire pour les .o
DIR_OBJETS       = lib
#répertoire pour l'exécutable
DIR_BIN          = bin
# nom exécutable (si essai alors TARGET = essai)
TARGET = main
 
#--------------------------------------
#Options et répertoires
#----------------------------------- ---
 
#options de compilationhttp://frechdesign.free.fr/EFL/e-Julia.zip
CFLAGS = -Wall -g -c -g3 -ggdb -O0 `pkg-config --cflags  elementary ecore-evas ecore evas` `xml2-config --cflags` 
 
#bibliothèques nécessaires
# exemple LIBS = -lm
LIBS = `pkg-config --libs elementary ecore-evas ecore evas` `xml2-config --libs` `curl-config --libs`
 
#Répertoires bibliothèques à consulter
# exemple LIBSDIR = -L./lib
LIBSDIR = 
 
#Répertoires include à consulter
INCLDIR = -I$(DIR_INCLUDE) 
 
 
#--------------------------------------
# Ne pas modifier la suite
# dépendances:
 
SOURCEFILES = $(MAIN_C_SOURCES:=.c) \
	 $(patsubst %,$(DIR_SOURCES)/%,$(OTHERS_C_SOURCES:=.c))
OBJETFILES = $(DIR_OBJETS)/$(MAIN_C_SOURCES:=.o)  \
	$(patsubst %, $(DIR_OBJETS)/%,$(OTHERS_C_SOURCES:=.o))
OTHERSOBJETFILES = $(patsubst %, $(DIR_OBJETS)/%,$(OTHERS_C_SOURCES:=.o))
 
 
$(DIR_BIN)/$(TARGET) : $(OBJETFILES)
	@echo "--- Création exécutable :" $(DIR_BIN)/$(TARGET) " ---"
	@$(C) $(LIBSDIR) -o $(DIR_BIN)/$(TARGET) $(OBJETFILES) $(LIBS)
 
#pour le main
$(DIR_OBJETS)/$(MAIN_C_SOURCES:=.o): $(DIR_OBJETS)/%.o : %.c
	@echo "--- " compilation $< " ---"
	@$(C) $(CFLAGS) $(INCLDIR) $<  -o $@
 
#pour les autres fichiers du répertoire DIR_SOURCES
$(OTHERSOBJETFILES) : $(DIR_OBJETS)/%.o : $(DIR_SOURCES)/%.c
	@echo "--- " compilation $< " ---"
	@$(C) $(CFLAGS) $(INCLDIR) $<  -o $@
 
#----------------------------------------
# construction dependances
EXPRESSION ="-e s/^/$(DIR_OBJETS)\//"
 
depend:
	@echo "--- Construction dépendances ---"	
	@$(C) -MM $(INCLDIR) $(SOURCEFILES) | \
		sed $(EXPRESSION)  >makefile.depend
 
#----------------------------------------
# utilitaires#--------------------------------------
# makefile pour C
#
# IMPORTANT
# Ne pas oublier de faire:
#   make depend
# apres ajout d'un nouveau fichier source (.h) ou (.c)
# ou apres l'ajout d'un #include dans un source
#--------------------------------------
 
#--------------------------------------
#compilateur
#--------------------------------------
 
C = gcc 
 
#--------------------------------------
# partie à compléter
#--------------------------------------
 
#nom du fichier du repertoire principal contenant la fonction main
MAIN_C_SOURCES = main
#nom du répertoire contenant les autres fichiers source
DIR_SOURCES      = src
#nom des autres fichiers sources du repertoire DIR_SOURCES
OTHERS_C_SOURCES   = libJulia
#répertoire contenant les .h
DIR_INCLUDE      = include
#répertoire pour les .o
DIR_OBJETS       = lib
#répertoire pour l'exécutable
DIR_BIN          = bin
# nom exécutable (si essai alors TARGET = essai)
TARGET = main
 
#--------------------------------------
#Options et répertoires
#----------------------------------- ---
 
#options de compilation
CFLAGS = -Wall -g -c -g3 -ggdb -O0 `pkg-config --cflags  elementary ecore-evas ecore evas` `xml2-config --cflags` 
 
#bibliothèques nécessaires
# exemple LIBS = -lm
LIBS = `pkg-config --libs elementary ecore-evas ecore evas` `xml2-config --libs` `curl-config --libs`
 
#Répertoires bibliothèques à consulter
# exemple LIBSDIR = -L./lib
LIBSDIR = 
 
#Répertoires include à consulter
INCLDIR = -I$(DIR_INCLUDE) 
 
 
#--------------------------------------
# Ne pas modifier la suite
# dépendances:
 
SOURCEFILES = $(MAIN_C_SOURCES:=.c) \
	 $(patsubst %,$(DIR_SOURCES)/%,$(OTHERS_C_SOURCES:=.c))
OBJETFILES = $(DIR_OBJETS)/$(MAIN_C_SOURCES:=.o)  \
	$(patsubst %, $(DIR_OBJETS)/%,$(OTHERS_C_SOURCES:=.o))
OTHERSOBJETFILES = $(patsubst %, $(DIR_OBJETS)/%,$(OTHERS_C_SOURCES:=.o))
 
 
$(DIR_BIN)/$(TARGET) : $(OBJETFILES)
	@echo "--- Création exécutable :" $(DIR_BIN)/$(TARGET) " ---"
	@$(C) $(LIBSDIR) -o $(DIR_BIN)/$(TARGET) $(OBJETFILES) $(LIBS)
 
#pour le main
$(DIR_OBJETS)/$(MAIN_C_SOURCES:=.o): $(DIR_OBJETS)/%.o : %.c
	@echo "--- " compilation $< " ---"
	@$(C) $(CFLAGS) $(INCLDIR) $<  -o $@
 
#pour les autres fichiers du répertoire DIR_SOURCES
$(OTHERSOBJETFILES) : $(DIR_OBJETS)/%.o : $(DIR_SOURCES)/%.c
	@echo "--- " compilation $< " ---"
	@$(C) $(CFLAGS) $(INCLDIR) $<  -o $@
 
#----------------------------------------
# construction dependances
EXPRESSION ="-e s/^/$(DIR_OBJETS)\//"
 
depend:
	@echo "--- Construction dépendances ---"	
	@$(C) -MM $(INCLDIR) $(SOURCEFILES) | \
		sed $(EXPRESSION)  >makefile.depend
 
#----------------------------------------
# utilitaires
 
clean	:
	@rm -f *~ $(DIR_SOURCES)/*~ $(DIR_OBJETS)/*.o $(DIR_SOURCES)/*.bak \
		$(DIR_INCLUDE)/*~ core $(DIR_BIN)/$(TARGET) makefile.depend
	@echo "--- clean OK  ---"	
	@make -s depend
 
#----------------------------------------
# partie Makedepend 
#
 
-include makefile.depend
 
clean	:
	@rm -f *~ $(DIR_SOURCES)/*~ $(DIR_OBJETS)/*.o $(DIR_SOURCES)/*.bak \
		$(DIR_INCLUDE)/*~ core $(DIR_BIN)/$(TARGET) makefile.depend
	@echo "--- clean OK  ---"	
	@make -s depend
 
#----------------------------------------
# partie Makedepend 
#
 
-include makefile.depend

dans mon fichier libJulia.c :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
#include "libJulia.h"

et je le déclare aussi dans mon main.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
#include <Elementary.h>
#include "libJulia.h"
...
printA();
   evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE, cb_move, evas_object_evas_get(win));
...
et pourtant je pense avoir mis tout ce qui faut la ou il faut, je ne vois pas ou ça bloque ?

Qu'en pensez vous svp ?

si quelqu'un veut regarder le projet complet :
http://frechdesign.free.fr/EFL/e-Julia.zip