我正在尝试使用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)。
我是新手,非常感谢任何帮助。
答案 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`