opamでインストールしたはずなのに、dune buildとかで
Error: Library "foo" not found.
のように言われることがある。そんなとき確認すること。
まずは現状どうなっているのか確認する
opamにインストール済みか確認
foo
が本当に現在のopam switchでインストール済みか確認する
opam list
そもそもこの一覧にないなら今回のこの文書の対象外。opamでのインストール方法を確認しよう。
duneで見えてるライブラリ一覧を確認する
dune installed-libraries
チェックポイント1: duneでのpublic_nameを確認
該当バージョンの foo
ライブラリのソースコードを探して、プロジェクトディレクトリのどこかにあるduneファイルの中に (public_name foo)
っていうのがないか確認する。
これがないとduneから見えない。たまにopamでの名前と違うことあるかも。
チェックポイント2: install方法を確認
該当バージョンの foo
の opamファイル (foo.opamなど) を確認してインストール時にちゃんとインストールされんのか確認する。