[OCaml] problème de compilation

problème de compilation [OCaml] - Divers - Programmation

Marsh Posté le 01-06-2003 à 23:57:12    

Bonjour,
 
J'ai un petit problème de compilation avec un petit programme :
 
Voici ce que j'obtiens après un make :
 


ocamlopt operations.cmx tools.cmx tests.cmx main.cmx -o projet
No implementations provided for the following modules:
  Tools referenced from operations.cmx
  Types referenced from operations.cmx
make: *** [projet] Error 2


 
Voici mon makefile :
 


 
OBJS    = operations.o tools.o tests.o main.o
CMX     = operations.cmx tools.cmx tests.cmx main.cmx
HDS     = types.cmi operations.cmi tools.cmi tests.cmi main.cmi
EXE     = projet
CAML    = ocamlopt
OPTS    = -i -unsafe -w A
RM      = /bin/rm -f
 
dep : $(EXE)
 
all: clean dep
 
$(EXE): $(HDS) $(OBJS)  
 $(CAML) $(CMX) -o $(EXE)
 
tools.o: tools.ml tools.mli types.mli
 $(CAML) -c $(OPTS) tools.ml
 
tests.o: tests.ml tests.mli types.mli
 $(CAML) -c $(OPTS) tests.ml
 
operations.o: tools.ml tools.mli operations.ml operations.mli types.mli tests.ml tests.mli
 $(CAML) -c $(OPTS) operations.ml
 
main.o: main.ml main.mli operations.ml operations.mli types.mli tests.ml tests.mli
 $(CAML) -c $(OPTS) main.ml  
 
types.cmi: types.mli
 $(CAML) $(OPTS) types.mli
 
 
tests.cmi: types.mli tests.mli tools.mli
 $(CAML) $(OPTS) tests.mli
 
tools.cmi: tools.mli types.mli
 $(CAML) $(OPTS) tools.mli
 
operations.cmi: operations.mli types.mli tests.mli
 $(CAML) $(OPTS) operations.mli
 
main.cmi: main.mli types.mli
 $(CAML) $(OPTS) main.mli
 
clean:
 $(RM) $(EXE) $(OBJS) $(HDS) $(CMX) core *#*  *~  
 
 


 
Est-ce que vous voyez ce qui cloche ? J'ai un peu le nez dedans depuis 2h, je vois plus rien :/
 
Merci !

Reply

Marsh Posté le 01-06-2003 à 23:57:12   

Reply

Marsh Posté le 02-06-2003 à 11:09:47    


Salut,  
Première remarque : tu sembles créer ton Makefile à la main. Il y a plus simple : ocaml est livré avec un utilitaire qui cherche les dépendances entre tes fichiers caml et te créer un fichier de dépendance. Je crois qu'il s'appelle ocamldept ou un truc dans ce genre.
Donc ensuite tu fais un Makefile générique qui inclus le fichier de dépendance, et ça roule... Regarde dans l'aide de ocaml pour plus de détails (le Makefile générique est déjà tout fait).
 
Sinon pour ton problème, je ne sais pas trop. Il manque une tabulation il me semble à la ligne "$(EXE): $(HDS) $(OBJS)", sinon, je vois pas trop.
 

Reply

Marsh Posté le 02-06-2003 à 11:22:05    

Merci pour ton aide, je ne connaissais pas ocamlopt :D
 
J'ai resolu mon probleme en changeant l'ordre eds cmx, en mettant tools.cmx en premier =)
 
Merci à toi !
 
 
@+

Reply

Marsh Posté le 02-06-2003 à 14:28:06    

Evadream -jbd- a écrit :

Merci pour ton aide, je ne connaissais pas ocamlopt :D  
 
J'ai resolu mon probleme en changeant l'ordre eds cmx, en mettant tools.cmx en premier =)
 
Merci à toi !
 
 
@+

 
 
Lol, enfin, j'avais le début quand même :D

Reply

Marsh Posté le 02-06-2003 à 14:59:58    

ocamlopt c'est le compilo natif, je vois pas le rapport.

Reply

Marsh Posté le 02-06-2003 à 16:59:25    

nraynaud a écrit :

ocamlopt c'est le compilo natif, je vois pas le rapport.


 
Oui, tu as raison...
C'est bien ocamldep le générateur de fichier de dépendance : http://caml.inria.fr/ocaml/htmlman/manual027.html
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed