0

我一直在研究 OCaml 的 LLVM Kaleidoscope 教程。在教程的第二部分,我已经导航到文件夹中的示例代码

OCaml-Kaleidoscope\Chapter2

编译时遇到问题

ocamlbuild toy.byte

在cygwin上。这是教程中给出的编译代码。

我得到的错误是

''ocamlc.opt -c -I +camlp4 -pp camlp4of -o parser.cmo parser.ml
File "parser.ml", line 1:
Error: The files C:\OCaml\lib\pervasives.cmi and token.cmi
   make inconsistent assumptions over interface Pervasives
Exit code 2 while executing this command:
  ''ocamlc.opt -c -I +camlp4 -pp camlp4of -o parser.cmo parser.ml

我从这个链接使用 llvm 3.8.0 版和 OCaml 4.02.3 版。

我需要做什么来解决这个问题?

4

1 回答 1

0

通常这种错误发生在你第一次编译一个项目,然后更新一个 ocaml 库(或 Ocaml),然后你再次尝试编译你的程序时。(这里,token.cmi应该是之前编译过的,现在对改变的库做一些假设)

为避免此错误,最简单的方法是清理您的工作目录

ocamlbuild -clean

如果您使用的是 Ocaml,则可以使用

make clean

如果您有配置的 Makefile,或者手动使用类似的东西

rm -rf _build/ *.cmo *.cmi *.cmx *.byte *.opt *.cma 
于 2016-05-04T10:21:25.887 回答