简体   繁体   English

Frama-C未绑定模块Z构建错误

[英]Frama-C unbound module Z build error

Using Ubuntu 14.04, I downloaded the Neon Frama-C distribution, and installed the required tools: labgtk, sourceview, etc. I configured Frama-C no problem, but on building got: 使用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

The problem is 问题是

 let n = Z.of_bits str in

where Z denotes a module that is not imported (I guess). 其中Z表示未导入的模块(我猜)。 I do not know what Z is supposed to refer to so I have no way of trying to fix this. 我不知道Z应该引用什么,所以我无法试图解决这个问题。

Have you installed the zarith library ( libzarith-ocaml-dev under Ubuntu)? 你安装了zarith库(Ubuntu下的libzarith-ocaml-dev )吗? Frama-C can use two libraries for arbitrary precision integers: either Bignum , which is included in OCaml distribution (although I wouldn't be surprised that Debian/Ubuntu did manage to make it a separate package ), or Zarith , a newer, more efficient implementation. Frama-C可以使用两个库来获得任意精度整数: Bignum ,它包含在OCaml发行版中(虽然我不会惊讶于Debian / Ubuntu确实设法使它成为一个单独的包),或者Zarith ,一个更新的,更多有效实施。 unz.ml is part of the code that binds Zarith to Frama-C, thus if you don't have Zarith installed, you will have some issues compiling it. unz.ml是将Zarith绑定到Frama-C的代码的一部分,因此如果你没有安装Zarith ,你将会Zarith一些问题。

Normally, ./configure should take care of choosing the appropriate library. 通常, ./configure应该注意选择适当的库。 You can check what it has found in config.log . 您可以检查它在config.log中找到的内容。 A possible issue is that you have package libzarith-ocaml installed but not libzarith-ocaml-dev . 可能的问题是您安装了libzarith-ocaml包,但没有安装libzarith-ocaml-dev In this case, the library itself is installed (and presumably detected by ./configure ), but not the headers needed to compile the code against it. 在这种情况下,库本身已安装(并且可能由./configure检测),但不是编译代码所需的头文件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM