Now I try to write a compiler using ocamlfind
and some packages, especially ppx_sexp_conv
with opam
.
Somehow dependencies of ppx_sexp_conv
require compiler-libs
so the compilation option -I ~/.opam/VERSION/lib/compiler-libs
is added when compiling files by ocamlfind ocamlc -package ppx_sexp_conv
.
The problem is, compiler-libs
includes very common name files like parsing.cmi
, main.cmi
, lexing.cmi
.
This make conflicts of .cmi
files and make many noisy warnings as follows:
$ 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
```
Note that main.cmi
, parsing.cmi
, lexing.cmi
and main.cmi
exist in the same directory.
I believe that such file names are common and everybody want to use.
My question is, how to quiet such noisy warnings.
Thanks to them, it is hard to find more important warnings and errors immediately...
My environment: ocaml 4.02.3 with opam 1.2.2.