在OSX上使用Z3和OCaml

时间:2018-04-20 20:12:55

标签: macos ocaml z3

我正在尝试使用OCaml绑定在OSX上使用Z3 Solver。 尝试使用时构建和运行我的解决方案 ocamlfind ocamlc -o testsat.byte -package Z3 -linkpkg testsat.ml我得到ocamlfind: Package Z3 not found

我还尝试使用ocamlbuild而没有-package标记,但是我收到了Unbound Module Z3错误。

在尝试安装z3 dev部分时,我在安装z3Overlay库时遇到了问题 - https://github.com/termite-analyser/z3overlay

有没有人知道可以在OSX上使用的任何修补程序或稳定版本?我的假设是我遇到了这些错误,因为构建失败了(从官方文档中可以看出:https://github.com/Z3Prover/z3)。

我是新手,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

库和包名称区分大小写,z3绑定的包名称为z3而不是Z3。您始终可以使用ocamlfind list查询可用的包。

ocamlfind list | grep -i Z3
z3                  (version: 4.6.0.0)

因此以下命令将按预期工作

ocamlfind ocamlc -o testsat.byte -package z3 -linkpkg testsat.ml

马丁在评论中提到了一个小警告,所以你应该得到另一个错误,应该是这样的:

libz3.so: cannot open shared object file: No such file or directory

实际上,程序包会在未搜索的位置安装libz3.so,因此您应该告诉系统链接器在哪里搜索z3共享对象。在Mac OS X中,可以通过设置DYLD_LIBRARY_PATH变量来实现,例如,

export DYLD_LIBRARY_PATH=`opam config var z3:lib`
在GNU / Linux系统上,可以通过LD_LIBRARY_PATH环境变量完成相同的操作:

export LD_LIBRARY_PATH=`opam config var z3:lib`