我的lib有两个文件:bson.ml
和bson.mli
。
我还有另一个使用let doc = Bson.make ();;
等访问该库的测试文件,没有任何问题。
我也成功构建了它们,我得到bson.cmx
和bson.cmo
然后,我ocamlfind install
跟name="bson"
description="A bson data structure, including encoding/decoding"
version="0.88.1"
archive(byte)="bson.cmo"
archive(native)="bson.cmx"
。
META是这样的:
ocamlfind install bson META _build/src/bson.cmx _build/src/bson.cmo src/bson.mli
根据上述帖子的说明,我使用的命令是
Removed /Users/xxx/.opam/4.00.1/lib/bson
Installed /Users/xxx/.opam/4.00.1/lib/bson/bson.mli
Installed /Users/xxx/.opam/4.00.1/lib/bson/bson.cmo
Installed /Users/xxx/.opam/4.00.1/lib/bson/bson.cmx
Installed /Users/xxx/.opam/4.00.1/lib/bson/META
它说
ocamlfind list
如果我使用bisect (version: 1.3)
bson (version: 0.88.1)
camlp4 (version: [distributed with Ocaml])
,我可以看到它在那里
ocaml toplevel
好的,然后我打开#require "bson"
和# #require "bson";;
/Users/xxx/.opam/4.00.1/lib/bson: added to search path
/Users/xxx/.opam/4.00.1/lib/bson/bson.cmo: loaded
。它说
let doc = Bson.make ();;
最后,当我开始使用ocamlbuild -use-ocamlfind -package bson test.native
时,它说错误:未绑定模块Bson 。
为什么?
我成功安装了我的lib,为什么仍然无法使用它?
修改
我也尝试通过命令行加载它,例如{{1}},仍然无法正常工作
答案 0 :(得分:1)
自己想出来。
我还应该安装.cmi
和.o
个文件。如果没有.o
文件,则无法编译本机。
我应该使用ocamlfind install bson META _build/src/bson.cmx _build/src/bson.cmo src/bson.mli _build/src/bson.cmi _build/src/bson.o
而不是ocamlfind install bson META _build/src/bson.cmx _build/src/bson.cmo src/bson.mli
即,添加 _build / src / bson.cmi _build / src / bson.o (请参阅下面的@ gasche评论)