我正在尝试编译一个ocaml程序(它的一部分如下所示)
open Ocamlbuild_plugin
open Command
(** helper functions )
( splitting strings using a delimeter character *)
let rec strsplit sep str accu len =
try let idx = String.rindex_from str (len - 1) sep in
strsplit sep str ((String.sub str (idx + 1) (len - 1 - idx)) :: accu) idx
with Not_found -> (String.sub str 0 len) :: accu
let strsplit sep str = strsplit sep str [] (String.length str)
(** initializing variables from the environment *)
let host = Ocamlbuild_pack.Ocamlbuild_Myocamlbuild_config.system最后一行导致未绑定模块错误。我能做什么?谢谢
更新1:
代码来自github项目https://github.com/ykazakov/cb-reasoner
我正在按照那里的指示使用"make“来编译程序。这个让文件看起来像这样
BUILDDIR ?= _build
OCAMLBUILD ?= ocamlbuild
OCAMLBUILD := $(OCAMLBUILD) -build-dir $(BUILDDIR)
.PHONY: main clean clib
main:
$(OCAMLBUILD) main/cb.native
all:
$(OCAMLBUILD) main/cb.native jni cwrap/libcb.a
cwrap:
$(OCAMLBUILD) cwrap/libcb.a
jni:
$(OCAMLBUILD) jni
clean:
$(OCAMLBUILD) -clean;\
rm -f cb.native发布于 2019-03-21 13:30:10
我在ocamlbuild问题跟踪器上回答了这个问题(我跟踪StackOverflow,但不太密切,对不起)。为了方便起见,引用如下:
OCamlbuild作为
Ocamlbuild_plugin模块为插件用户导出一个稳定的界面。使用Ocamlbuild_pack直接访问ocamlbuild的内部定义,并建议不要使用它,因为没有向后兼容性的保证。 在您的具体案例中,该代码使用了一个模块,在最近的ocamlbuild版本中确实删除了该模块(它的存在是ocamlbuild的构建系统集成到编译器发行版的特定方式的一个工件)。我可以用OCaml 3.12.1、4.00.1和4.01.0正确地构建这个软件,但不能使用OCaml和ocamlbuild的任何新版本。 使用opam可以方便地安装旧的OCaml版本: OpamInstall4.01.0val $(opam switch= 4.01.0 )在项目的目录中创建# if 如果您有兴趣修补此软件以使其与更新的OCaml版本兼容,我们可以讨论如何以更健壮的方式获取相应的信息。 无论如何,我要结束这个问题,因为这不是一个ocamlbuild问题,而是一个cb-推理者的维护问题。(当然,可以随意发表进一步的评论。)
https://stackoverflow.com/questions/55273787
复制相似问题