Compilação separada de módulos OCaml
eu liessa questão e outros, mas meu problema de compilação não foi resolvido.
Estou testando a compilação separada com esses arquivos:
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 ()
Agora eu gero o arquivo .mli
ocamlc -c -i testmoda.ml >testmoda.mli
e o testmoda.cmi está lá.
Em seguida, crio o arquivo .cmo sem erros:
ocamlc -c testmoda.ml
Tudo bem, faça o mesmo com 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
Outra tentativa:
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
Outras combinações também falharam.
Como compilar testmodb.ml e testmod.ml? Isso deve ser fácil - sem ocamlbuild / omake / oasis, eu acho.
Os erros de sintaxe nos arquivos são excluídos. Se eu agrupá-los em um arquivo (com o espaço necessário entre eles), ele compila e executa perfeitamente.