使用Ubuntu 14.04,我下载了Neon Frama-C发行版,并安装了所需的工具:labgtk, sourceview等。我配置Frama-C没有问题,但在构建时得到:
File "external/unz.ml", line 39, characters 10-19:
Error: Unbound module Z
make: *** [external/unz.cmo] Error 2
问题是
let n = Z.of_bits str in
其中Z表示未导入的模块(我猜)。我不知道Z应该指的是什么,所以我没有办法试图修复这个
您安装了zarith
库(Ubuntu下的libzarith-ocaml-dev
)吗?Frama-C可以使用两个库来处理任意精度的整数:Bignum
,它包含在OCaml发行版中(尽管Debian/Ubuntu确实设法使它成为一个单独的包,我不会感到惊讶),或者Zarith
,一个更新,更有效的实现。unz.ml
是绑定代码的一部分Zarith
到Frama-C,因此,如果你没有安装Zarith
,你会有一些问题编译它。
通常,./configure
应该负责选择合适的库。您可以检查它在config.log
中发现了什么。一个可能的问题是,您安装了libzarith-ocaml
包,但没有安装libzarith-ocaml-dev
包。在这种情况下,安装了库本身(并且可能被./configure
检测到),但没有安装针对它编译代码所需的头文件。