我最近决定整理我的项目目录中的文件。我将用于几种不同文件类型的解析器移动到它们自己的目录中,并决定使用ocamlbuild(因为项目越来越复杂,简单的shell脚本不再足够)。我通过修改myocamlbuild添加了一些基本规则(调用
在编译过程中,解析器目录被正确遍历,并且在
我感觉我可能会做一些多余的事情,但无论如何,在编译时,项目仍然找不到Parser模块!
谢谢! _tags
ocaml_lib
,我之后会使用ocamlfind),成功地包含了外部项目,但是我不知道如何适当地将文件夹作为模块包含到项目中。我创建了一个名为parser.mlpack
的文件,并填充了正确的要包含的模块(例如,“parser / Date”等),在根目录中编写了一个parser.mli
,用于它们的实现,并修改了_tags
文件(见下文)。在编译过程中,解析器目录被正确遍历,并且在
_build
目录中创建了parser.cmi
、parser.mli.depends
以及parsers子目录中所有的*.cm[xio]
文件。我感觉我可能会做一些多余的事情,但无论如何,在编译时,项目仍然找不到Parser模块!
谢谢! _tags
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
编译错误
/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.
你会注意到在上面的链接阶段中没有包括 -I parser
,事实上没有任何与解析器相关的文件被包含!
编辑:从下面的评论和回答中添加了新细节。
-I parser
命令行等价物了。现在,我只需使用ocamlbuild project.<target>
进行构建。 - nlucaroni