如何编译目录中的模块(名称中也带有点)

时间:2014-11-29 00:24:42

标签: module coq

我想将模块导入为

Require Import Foo.Bar.

鉴于我在目录Bar.v内有一个文件Foo

我目前正在编译此模块:

$ coqc Foo/Bar.v

当我尝试Require Import Foo.Bar.时,我收到此错误:

Error: The file Foo/Bar.vo contains library Bar and not library Foo.Bar

1 个答案:

答案 0 :(得分:1)

您可以使用-R选项执行此操作。使用coqc -R Foo Foo Foo/Bar.v编译您的文件。 -R标志有两个选项:(1)要添加到包含路径的目录,以及(2)要在模块命名空间中输入的名称。

稍后,如果您有其他文件Baz.v使用Foo.Bar,请使用coqc -R Foo Foo Baz.v进行编译。

如果你有一个包含许多子目录的大项目,你可以使用coq_makefile,你也可以使用顶层中的-R来使所有子目录的名称保持一致。请查看我们项目的Makefile上的相应coq_makefile source