4

使用 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 应该指的是什么,所以我无法尝试解决这个问题。

4

1 回答 1

7

您是否安装了zarith库(libzarith-ocaml-dev在 Ubuntu 下)?Frama-C 可以使用两个库来处理任意精度的整数:要么Bignum,包含在 OCaml 发行版中(尽管我不会对 Debian/Ubuntu 确实设法使其成为一个单独的包感到惊讶),或者Zarith,一个更新、更有效的实现. unz.ml是绑定 Zarith到 Frama-C 的代码的一部分,因此如果您没有Zarith安装,编译它会遇到一些问题。

通常,./configure应该注意选择合适的库。您可以检查它在config.log. 一个可能的问题是您已安装软件包libzarith-ocaml但未安装libzarith-ocaml-dev. 在这种情况下,库本身已安装(并且可能被 检测到./configure),但没有安装针对它编译代码所需的标头。

于 2014-05-28T07:28:37.783 回答