D'abord bonjour à tous, comme c'est ma première fois sur ce forum, je vais essayer d'être aussi clair que possible, toutefois, soyez indulgent...
Je fais actuellement des petits tests pour apprendre le JNI, sans entrer dans les détails, voici mon problème:
- j'ai un lot de fichiers: des ".c", des ".h", et des ".def"
- jusque là, je tapais par exemple depuis une fenêtre "invite de commande":
De cette manière çà fonctionne impec' sauf qu'avec 40 fichiers çà commence à être long... Je voudrais donc faire un makefile !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 gcc -c *.c // pour compiler ;) gcc -shared -o lib.dll prog.c prog.def // pour génerer le .dll qui permet de faire communiquer le code java avec le c
En parcourant google, j'ai rédigé ce Makefile qui visiblement n'est pas correct:
Quand je lance ce makefile, j'ai çà qui s'affiche:SRC = prog1.c prog2.c prog3.c interface1.c interface2.c interface3.c
DEF = Classe1.def Classe2.def
OBJ = $(SRC:.c=.o)
CC = gcc
LFLAGS = -c
LFLAGS2 = -shared -o
%.o: %.c *.h $(CC) -c $(<) -o $(@) #pour compiler
all: $(OBJ) $(CC) $(OBJ) $(LFLAGS) #pour compiler suite
$(CC) $(LFLAGS2) lib.dll $(OBJ) $(DEF) #pour générer le fameux .dll
clean: del $(OBJ)
gcc -c -o prog1.o prog1.c
gcc -c -o prog2.o prog2.c
gcc -c -o prog3.o prog3.c
gcc -c -o interface1.o interface1.c
gcc -c -o interface2.o interface2.c
gcc -c -o interface3.o interface3.c
make: ***no rule to make target 'gcc', needed by 'all'. stop.
Au final, mes fichiers sont compilés (j'ai bien les ".o") mais pas un ".dll" à l'horizon...
Si des pros des Makefile passent par là, un p'tit coup de pouce siouplait.
Merci d'avance.
Partager