我正在用以下内容创建一个.cma文件:
ocamlc -o ./_build/myLib.cma -a ./_build/myBtree.cmo但是,不管我怎么努力,我都不能用这个文件。我一直收到“错误:未绑定模块MyLib”。
请有人发布一个简单的示例,该示例使用ocamlc (请不要构建实用程序示例)来创建.cma文件,然后在字节码可执行文件中使用该.cma文件。
完全迷失..。
发布于 2018-11-17 21:33:10
在手工创建库时,需要记住库至少有两个方面:
例如,如果库源文件包含
lib_src
|- a.ml
|- b.ml
|- c.ml然后,字节码库的编译接口可以通过不公开A和B来限制为b.cmi。因此,您可以有一个编译后的库,它只包含以下文件:
lib
|- a.cmi
|- c.cmi
|- lib.cma此时,编译依赖于库的模块User。
(* user.ml *)
printf "%d" A.x需要同时链接存档lib.cma,但也需要用-I指示cmi文件的位置。
ocamlc -I lib lib.cma user.ml第二个值得注意的问题是,cma文件只是一组cmo文件。它本身并不实现任何类型的名称空间。因此,没有由Lib引入的lib.cma模块。名称空间通常由构建系统本身实现。
https://stackoverflow.com/questions/53355157
复制相似问题