使用OCaml绑定安装Z3

时间:2018-01-22 22:20:48

标签: installation ocaml z3

我正在尝试使用OCaml绑定安装Z3并收到以下错误。

cp ../src/api/ml/z3.mli api/ml/z3.mli
ocamlc  -I api/ml -o api/ml/z3.cmi -c api/ml/z3.mli
File "api/ml/z3.mli", line 1159, characters 35-50:
Error: Unbound module Big_int
make: *** [api/ml/z3.cmo] Error 2

我首先尝试通过

安装
opam install z3

然后我尝试克隆Z3 repo并运行

 python scripts/mk_make.py --ml
 cd build
 make

之后我得到同样的错误。

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

Z3安装期待更旧的OCaml环境。在最近的OCaml版本中,Big_int位于Num模块中。

$ opam install num

对于它的价值,我不相信Z3有一个OPAM模块。如果运行Z3安装,则OCaml / Z3接口安装,就像它是一个OPAM模块(在〜/ .opam中)。但事实并非如此。

我每天都在使用Z3,所以我可以验证它是否有效(OCaml 4.03.0和OCaml 4.06.0。)

<强>更新

我刚刚确认OPAM中有一个Z3软件包,我能够在OCaml 4.06.0上安装一个以前干净的系统,我碰巧使用它。该系统是Ubuntu 14.04。

我需要进行以下初始安装:

sudo apt-get update
sudo apt-get install ocaml
sudo apt-get install m4
sudo apt-get install dev-libgmp
sudo apt-get install g++

然后我安装了OPAM:

sudo add-apt-repository ppa:avsm/ppa
sudo apt-get update
sudo apt-get install opam

现在像我一样跑:

$ opam init
$ eval `opam config env`
$ opam update
$ opam switch 4.06.0
$ eval `opam config env`
$ opam install z3
$ ls ~/.opam/4.06.0/lib/z3
dllz3ml.so   z3.cmi       z3enums.cmx  z3ml.cmxa     z3native.cmx
libz3ml.a    z3.cmo       z3enums.mli  z3ml.cmxs     z3native.mli
libz3.so     z3.cmx       z3enums.o    z3.mli        z3native.o
META         z3enums.cmi  z3ml.a       z3native.cmi  z3native_stubs.o
opam.config  z3enums.cmo  z3ml.cma     z3native.cmo  z3.o

这对我来说很好看。我不是Z3向导;它主要只是我正在进行的项目的依赖。但这些是我过去常常看到的文件。