Dependencies Ocaml编译多个文件(循环依赖项)
我已经为ocaml下载了Dependencies Ocaml编译多个文件(循环依赖项),dependencies,compilation,ocaml,circular-dependency,Dependencies,Compilation,Ocaml,Circular Dependency,我已经为ocaml下载了XMLlight,并尝试编译它,但一直没有成功,问题如下 当我输入ocamlopt dtd.ml时,将出现一个错误未绑定模块Xml。 然后我输入ocamlopt xml.ml,将出现一个错误未绑定值XmlParser.make。 然后我输入ocamlopt xmlParser.ml,将出现一个错误未绑定模块Dtd 实际上有没有一种方法可以将它们编译在一起?因为这个,我觉得自己很愚蠢。这并不是那么琐碎,没什么奇怪的。以下是make(来自mingw/cygwin ocaml发
XMLlight
,并尝试编译它,但一直没有成功,问题如下
当我输入ocamlopt dtd.ml
时,将出现一个错误未绑定模块Xml
。
然后我输入ocamlopt xml.ml
,将出现一个错误未绑定值XmlParser.make
。
然后我输入ocamlopt xmlParser.ml
,将出现一个错误未绑定模块Dtd
实际上有没有一种方法可以将它们编译在一起?因为这个,我觉得自己很愚蠢。这并不是那么琐碎,没什么奇怪的。以下是
make
(来自mingw/cygwin ocaml发行版)的输出:
以及测试:
ocamlc xml-light.cma test.ml -o test.exe
make-install
输出:
ocamlopt -c xml_parser.ml
ocamlopt -c xml_lexer.ml
ocamlopt -c dtd.ml
ocamlopt -c xmlParser.ml
ocamlopt -c xml.ml
ocamlopt -o xml-light.cmxa -a xml_parser.cmx xml_lexer.cmx dtd.cmx xmlParser.cmx xml.cmx
cp xml-light.cmxa xml-light.a xml-light.cma xml.mli xmlParser.mli dtd.mli xml.cmi xmlParser.cmi dtd.cmi xml.cmx dtd.cmx xmlParser.cmx `ocamlc -where`
注意最后一行(我用换行符分隔):您可能没有cp命令;只需手动创建%OCAMLLIB%\xml light
目录并将列出的文件复制到那里。然后您可以像这样构建您的项目:
ocamlopt -I +xml-light xml-light.cmxa foo.ml -o foo.exe
@巴蒂:你又帮我了。。。无论如何,还有一件事到目前为止还不能完成。当我把这个文件放在我的项目文件夹中时,我想使用
openxml;;打开这个文件
例如,为什么它会给我一条错误消息:错误:xml.cmi不是一个编译接口
,我在这里还遗漏了什么?@barti:在IDE上没有办法做到这一点吗?我使用的是Camelia
,当我使用IDE并键入openxml;,这个错误就发生了代码>或任何其他file@zfm:无论如何,你必须把库文件放在适当的目录下,不要认为IDE能帮你做到这一点。。。使用mingw构建这个特定的库要容易得多(尽管不是没有问题)@barti:我相信我把它放在了正确的目录中。。。比方说,如果我键入openasdf代码>中没有asdf.cmi'
,错误将是错误:未绑定模块asdf
。所以它检测到了正确的文件夹,正确的.cmi
,但它的想法不同,我不明白为什么。@zfm:让我们把问题缩小到xml light
,好吗?:)当您打开Xml
时会出现什么错误?
ocamlopt -I +xml-light xml-light.cmxa foo.ml -o foo.exe