【问题标题】:Include package batteries in makefile for Ocaml在 Ocaml 的 makefile 中包含包装电池
【发布时间】:2011-12-02 17:11:33
【问题描述】:

我想使用module List of Ocaml Batteries的功能。我已经安装了电池,Getting started 的一个简单代码可以与ocamlfind ocamlc -package batteries -linkpkg euler001.ml -o euler001 一起使用。

现在回到我的项目,我有一个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

【问题讨论】:

  • 你所说的“没用”到底是什么意思?您收到错误消息了吗?
  • 你不会得到任何有用的答案,除非弹出一些心灵感应器或者你提供你运行的确切命令和你得到的错误消息(didn't work 不是错误消息)。还要尽量减少您的问题,直到它消失或可以在合理数量的代码中重复。
  • 好的问题以“这就是我所做的,这就是发生的事情,这是我所期望的”的形式表达出来的,每个问题都有清晰完整的描述。您错过了“这就是发生的事情”部分。

标签: makefile ocaml ocamlbuild ocaml-batteries


【解决方案1】:

改变编译命令是不够的。您需要添加例如open Batteries_uni 在您要使用电池列表的文件的开头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    相关资源
    最近更新 更多