现在我尝试使用ocamlfind
和一些包编写编译器,尤其是ppx_sexp_conv
使用opam
. 不知何故需要
依赖,因此在编译文件时添加了编译选项。ppx_sexp_conv
compiler-libs
-I ~/.opam/VERSION/lib/compiler-libs
ocamlfind ocamlc -package ppx_sexp_conv
问题是,compiler-libs
包括非常常见的名称文件,如parsing.cmi
, main.cmi
, lexing.cmi
.
这会产生.cmi
文件冲突并发出许多嘈杂的警告,如下所示:
$ ocamlfind ocamlc -package ppx_sexp_conv -c parser.mli
findlib: [WARNING] Interface main.cmi occurs in several directories: ., /home/nomaddo/.opam/4.02.3/lib/ocaml/compiler-libs
findlib: [WARNING] Interface lexer.cmi occurs in several directories: ., /home/nomaddo/.opam/4.02.3/lib/ocaml/compiler-libs
findlib: [WARNING] Interface topdirs.cmi occurs in several directories: /home/nomaddo/.opam/4.02.3/lib/ocaml/compiler-libs, /home/nomaddo/.opam/4.02.3/lib/ocaml
findlib: [WARNING] Interface parser.cmi occurs in several directories: ., /home/nomaddo/.opam/4.02.3/lib/ocaml/compiler-libs
```
请注意main.cmi
,parsing.cmi
、lexing.cmi
和main.cmi
存在于同一目录中。
我相信这样的文件名很常见,每个人都想使用。
我的问题是,如何消除这种嘈杂的警告。
多亏了他们,很难立即找到更重要的警告和错误......
我的环境:ocaml 4.02.3 和 opam 1.2.2。