I tried to reproduce a similar set of directories as yours. I couldn't
get the "circular dependency" error, but I had to compile everything in
one command line, otherwise the file a.cma (which is in the _build/A
directory) was deleted before compiling b.cma. The command which I used
and which worked is:
ocamlbuild -Is A,B a.cma b.cma
I don't really understand how the -lib option works though. Where and
when does it look for the library x.cma with the "-lib x" option? How
and what's the semantic of the "+" you can add at the beginning of a
library name?...
--
Romain Bardou