2011-12-02 40 views
2

我想使用module List of Ocaml Batteries的功能。我已經安裝了電池,並且Getting started的一個微不足道的代碼與ocamlfind ocamlc -package batteries -linkpkg euler001.ml -o euler001一起使用。將包電池包含在生成文件中供Ocaml使用

現在回來我的項目,我有一個makefile如下:

CMO=sib_lexer.cmo sib_parser.cmo sib_pp.cmo lattices.cmo abstract_interpreter.cmo main.cmo 
GENERATED = sib_lexer.ml sib_parser.ml sib_parser.mli 
BIN=Simpler-Basic 
FLAGS= -g -annot 

all: $(BIN) 
    export OCAMLRUNPARAM=b 
    ./$(BIN) test.sib -a zone 

$(BIN):$(CMO) 
    ocamlc $(FLAGS) -o $(BIN) graphics.cma $(CMO) 

.SUFFIXES: .mli .ml .cmi .cmo .mll .mly 

.mli.cmi: 
    ocamlc $(FLAGS) -c $< 

.ml.cmo: 
    ocamlc $(FLAGS) -c $< 

.mll.ml: 
    ocamllex $< 

.mly.ml: 
    menhir -v $< 

.mly.mli: 
    ocamlyacc -v $< 

clean: 
    rm -f *.cm[io] *.o *~ $(BIN) $(GENERATED) sib_parser.output 

.depend depend:$(GENERATED) 
    rm -f .depend #3 
    ocamldep *.ml *.mli > .depend #4 

include .depend 

我試圖用ocamlc $(FLAGS)ocamlfind ocamlc -package batteries -linkpkg $(FLAGS)全部更換,但它沒有工作...

誰能告訴我如何修改makefile以便它符合batteries

+1

你是什麼意思由「沒有工作」?你收到錯誤信息了嗎? –

+0

除非某些傳感器彈出或您提供了您運行的確切命令以及您收到的錯誤消息(「不工作」不是錯誤消息),否則您將得不到任何有用的答案。同時最大限度地減少您的問題,直到它消失或可以在合理數量的代碼中重複。 – ygrek

+0

好的問題用「這就是我所做的,這就是發生了什麼,這是我所期望的」的形式表達出來的,並且對每個問題都進行了清晰完整的描述。你錯過了「這就是發生了什麼」的一部分。 –

回答

1

更改編譯命令是不夠的。您需要添加例如open Batteries_uni在要使用電池列表的文件的開頭。

+0

我知道......我已經添加了該行......但它仍然無效...... – SoftTimur

相關問題