Coq Compariable.vo包含库顶。Compariable和not library Compariable

Coq Compariable.vo包含库顶。Compariable和not library Compariable,coq,Coq,我对Coq很陌生 在我们的项目中,我们切换到使用coq_makefile实用程序,并遇到以下问题 单步执行校对脚本将导致以下错误: Require Import comparable. Error: The file /Users/ayman/open-source/regex-reexamined-coq/comparable.vo contains library Top.comparable and not library comparable 我们的\u CoqProject文件非常

我对Coq很陌生

在我们的项目中,我们切换到使用
coq_makefile
实用程序,并遇到以下问题

单步执行校对脚本将导致以下错误:

Require Import comparable.

Error:
The file /Users/ayman/open-source/regex-reexamined-coq/comparable.vo contains library
Top.comparable and not library comparable

我们的
\u CoqProject
文件非常简单(也许这就是问题所在),它只列出了项目中的所有文件。

Coq库有一个逻辑路径。例如,标准库中的文件都有一个以
Coq
开头的逻辑路径。在您的例子中,您没有指定任何关于逻辑路径的内容,因此Coq会任意将编译后的文件放入以
Top
开头的路径中。稍后,当尝试加载文件时,Coq将逻辑路径
Top
与物理路径
进行比较,并抱怨存在差异

最简单的修复方法是在
\u CoqProject
文件中添加以下行:
-R。顶部
。选项
-R
将物理路径(此处
)映射到逻辑路径(此处
Top
),这将修复差异


但是
Top
对于一个库来说是一个糟糕的名字,所以你应该用别的东西来代替它。此外,该名称将作为库的安装路径,因此请选择一个有意义的名称(例如,
RegexDerivatives
),因为这是用户将使用的名称。

谢谢!这很有效,解释也很有用。