2017-05-11 4 views
2

J'ai une nouvelle installation de Coq 8.6 sous Ubuntu 17.04. Lorsque j'essaie de compiler mon projet en utilisant make, cela fonctionne bien jusqu'à ce que j'obtienne le premier message d'erreur. Ensuite, je tente d'utiliser CoqIDE pour localiser et corriger l'erreur, mais je reçois de nouveaux messages d'erreur, tels que:Configuration CoqIDE sous Linux

« Le foo.vo fichier contient la bibliothèque Top.foo et non bibliothèque foo »

Je pense est que quelque chose ne va pas avec la configuration de CoqIDE, mais je ne sais pas ce que cela pourrait être. Des indices? Merci d'avance, Marcus.

+3

Votre foo.v a été compilé avec d'autres drapeaux et les chemins que ceux que votre CoqIDE utilise. Recompilez les fichiers ou essayez d'utiliser CoqIDE pour utiliser les mêmes indicateurs que ceux utilisés lors de la compilation. Les drapeaux pertinents sont les drapeaux -R, -I et -Q, je pense. Dans certains cas, ces drapeaux (qui spécifient comment les chemins doivent être mappés dans des espaces de noms) peuvent être définis dans un fichier '_CoqProject' et lus automatiquement dans l'éditeur. – larsr

Répondre

5

Je suppose que vous êtes maintenant debout dans le répertoire avec le fichier foo.vo

Pour mapper les fichiers du répertoire . en cours dans l'espace de noms Top vous donnez l'argument

-Q . Top 

Voici un " compléter "exemple.

mkdir test; cd test 
echo 'Definition a:=1.' > foo.v 

coqc -Q . Top foo.v # this puts the foo module into Top as Top.foo. 

coqtop -Q . Top 

Coq < Require Import Top.foo. Print a. 

a = 1 
    : nat 

mais en utilisant coqtop sans mapper le .vo à l'espace dans lequel il a été compilé échoue:

coqtop 

Coq < Require foo. 

> Require foo. 
> ^^^^^^^^^^^^ 
Error: The file /.../test/foo.vo contains library Top.foo 
and not library foo 
+0

Merci beaucoup. J'ai ajouté un fichier nommé _CoqProject au dossier où j'ai mes scripts avec le contenu -R. Top, et maintenant tout fonctionne bien. Néanmoins, je n'ai jamais eu à le faire sous Windows, donc je suppose que c'est spécifique à Linux. – Marcus