3

Agdaファイルをコンパイルしようとしていますが、標準ライブラリを見つけることができません。私は文書hereを見ました。Agda:スタックでインストールするときにstd-libを見つけることができません

私はそれをインストールするために、スタックを使用しました:

> which agda 
/home/joey/.local/bin/agda 

そして、私は私のAgdaディレクトリの環境変数を設定しました:

正しいファイルが格納されている
> echo $AGDA_DIR 
/home/joey/.agda 

/home/joey/agda/agda-stdlib/standard-library.agda-lib 

> cat "$AGDA_DIR"/libraries 
/home/joey/agda/agda-stdlib/standard-library.agda-lib 

> cat "$AGDA_DIR"/defaults 
standard-library 

> cat /home/joey/agda/agda-stdlib/standard-library.agda-lib 
name: standard-library 
include: src 

しかし、Agdaファイルをコンパイルすると、次のエラーが表示されます。

Failed to find source of module Function in any of the following 
locations: 
    /home/joey/agda/AutoInAgda/src/Function.agda 
    /home/joey/agda/AutoInAgda/src/Function.lagda 
    /home/joey/.stack/snapshots/x86_64-linux-nopie/lts-8.14/8.0.2/share/x86_64-linux-ghc-8.0.2/Agda-2.5.2/lib/prim/Function.agda 
    /home/joey/.stack/snapshots/x86_64-linux-nopie/lts-8.14/8.0.2/share/x86_64-linux-ghc-8.0.2/Agda-2.5.2/lib/prim/Function.lagda 
when scope checking the declaration 
    open import Function 

標準ライブラリを探す場所をAgdaに教えるにはどうすればよいですか?スタックのせいでこれは問題ですか?

私はUbuntu 17.10を使用しています。

+0

明示的に '--library = standard-library'をコマンドラインオプションとして渡すとどうなりますか? – gallais

+0

@gallaisこれを追加すると、エラーが表示されます。 '最上位モジュールの名前がファイル名と一致しません。 モジュールAutoは、 /home/joey/agda/agda-stdlib/src/Auto.agda 'のいずれかのファイルで定義する必要があります。標準ライブラリではなく、標準ライブラリとしてプロジェクトを扱おうとしているようですが、 – jmite

+0

ああ、今は 'standard-library'の場所が分かりました。私は追加の '-i .'(' Auto.agda'が実際にプロジェクトの根源にある場合)を投げ入れることでそれを有効にするべきだと思います。私はデフォルトの問題は何か分かりませんが、 '〜/ .agda/libraries'の名前を'〜/ .agda/libraries-VERSIONNUMBER'に変更したいかもしれません。 – gallais

答えて

2

ルートディレクトリに.agda-libファイルがあると、デフォルトファイルは完全に無視されます。その鍵は、そのファイルに明示的にstandard-libraryを含めることでした。

私には間違ったことがありますが、うまくいけば、同じ問題を抱えている他の人がこの回答を見つけるでしょう。

関連する問題