Compilación adecuada de módulos en subcarpetas (ocamlbuild)
Recientemente decidí organizar los archivos en el directorio de mi proyecto. Moví los analizadores que tenía para algunos tipos de archivos diferentes a su propio directorio y también decidí usar ocamlbuild (ya que el proyecto se estaba volviendo más complicado y el simple script de shell ya no era suficiente).
Pude incluir con éxito proyectos externos modificando myocamlbuild con algunas reglas básicas (llamandoocaml_lib
, Usaré ocamlfind en otro momento), pero estoy atascado en cómo incluir la carpeta como módulo en el proyecto correctamente. Creé unparser.mlpack
archivo y lo llenó con los módulos adecuados que se incluirán (por ejemplo, "analizador / Fecha", etc.), escribió unparser.mli
en la raíz del directorio para sus implementaciones, y modificó el_tags
archivo (ver más abajo).
Durante la compilación, el directorio del analizador se recorre correctamente yparser.cmi
, parser.mli.depends
ambos fueron creados en el_build
directorio; así como todos*.cm[xio]
archivos en el subdirectorio analizadores.
Siento que podría estar haciendo algo redundante, pero independientemente del proyectotodavía ¡No puedo encontrar el módulo Parser cuando compilo!
¡Gracias!
_etiquetas
debug : true
<*.ml> : annot
"parser" : include
<parser/*.cmx>: for-pack(Parser)
<curlIO.*> : use_curl
<mySQL.*> : use_mysql
<**/*.native> or <**/*.byte> : use_str,use_unix,use_curl,use_mysql
error de compilación
/usr/local/bin/ocamlopt.opt unix.cmxa str.cmxa -g -I /usr/local/lib/ocaml/site-lib/mysql mysql.cmxa -I /usr/local/lib/ocaml/curl curl.cmxa curlIO.cmx utilities.cmx date.cmx fraction.cmx logger.cmx mySQL.cmx data.cmx project.cmx -o project.native
File "\_none\_", line 1, characters 0-1:
Error: **No implementations provided for the following modules:**
Parser referenced from project.cmx
Command exited with code 2.
Notarás-I parser
no está incluido en la fase de enlace anterior; En realidad, ¡ninguno de los archivos relacionados con el analizador está incluido!
editar: Se agregaron nuevos detalles de los comentarios y la respuesta a continuación.