Раздельная компиляция модулей OCaml

я прочиталэтот вопрос и другие, но моя проблема с компиляцией не решена.

Я тестирую отдельную компиляцию с этими файлами:

testmoda.ml

module Testmoda = struct
  let greeter () = print_endline "greetings from module a"
end

testmodb.ml

module Testmodb = struct
  let dogreet () = print_endline "Modul B:"; Testmoda.greeter ()
end

testmod.ml

let main () =
  print_endline "Calling modules now...";
  Testmoda.greeter ();
  Testmodb.dogreet (); 
  print_endline "End."
;;
let _ = main ()

Теперь я генерирую файл .mli

ocamlc -c -i testmoda.ml >testmoda.mli

и testmoda.cmi там.

Далее я создаю .cmo файл без ошибок:

ocamlc -c testmoda.ml

Хорошо, сделайте то же самое с testmodb.ml:

strobel@s131-amd:~/Ocaml/ml/testmod> ocamlc -c -i testmodb.ml >testmodb.mli
File "testmodb.ml", line 3, characters 45-61:
Error: Unbound value Testmoda.greeter

Еще одна попытка:

strobel@s131-amd:~/Ocaml/ml/testmod> ocamlc -c testmoda.cmo testmodb.ml
File "testmodb.ml", line 3, characters 45-61:
Error: Unbound value Testmoda.greeter

Другие комбинации также провалились.

Как мне скомпилировать testmodb.ml и testmod.ml? Это должно быть легко - без ocamlbuild / omake / oasis, я думаю.

Синтаксические ошибки в файлах исключаются, если я объединяю их в один файл (с необходимым интервалом между ними), он компилируется и выполняется отлично.

Ответы на вопрос(1)

Ваш ответ на вопрос