问题标签 [ocamlbuild]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ocaml - 告诉 ocamlbuild 使用 Core
在我的项目中,我有一个使用 Core.Std 东西的文件,所以我运行了
并添加
在我的档案中。
当我跑
它说:
指向与上面的 open 语句一致。
所以,我试试这个:
并收到以下消息:
所以我想也许我也需要运行 opam install core.std ,但是根据 opam 显然没有这样的事情。我也试过“打开 Core.Std;;” 在 ocaml repl 中,但这也不起作用。有任何想法吗?
ocaml - How to pass -S flag to ocamlopt with ocamlbuild?
I'd like to pass the -S
flag to ocamlopt when building with the ocamlbuild and corebuild commands.
I understand doing ocamlbuild -cflag -S ...
won't work since -S
flag does only exist for ocamlopt and not ocamlc.
How can I do this using _tags files?
ocaml - 使用 ocamlbuild 构建库,使用 ocamlfind 安装它 - 最佳实践是什么?
我正在通过一个列出包含该库的模块的文件ocamlbuild
来编译 OCaml库。mylib.mllib
之后我想使用ocamlfind
. 与使用 构建的二进制文件不同ocamlbuild
,所有库文件都在_build
目录中。是使用类似的东西安装它们的正确方法
ocamlbuild
还是和之间有更好的整合ocamlfind
?特别是,我注意到-install-lib-dir
flagocamlbuild
但找不到有关其用途的文档。
我知道oasis
但现在想在 Makefile 和install
目标中解决问题。所有这些都是在使用opam
库管理器的上下文中,但讨论起来应该无关紧要。
interface - 在库中包含签名 (.mli) 文件
我有一个库,通用数据类型是在仅签名模块中定义的(将该签名复制到实现没有意义,因为它不包含任何功能):
在上面的设置中, ocamlbuild 无法创建库并出现一个相当令人惊讶的错误:
我可以在 mllib 文件中不指定 B 的情况下进行构建,但随后类型栏变得抽象(这不是有意的)。有没有办法使用 ocamlbuild包含签名?
ocaml - 通过 ocamlbuild/ocamlfind 链接库
我有一个名为 ojasmine 的本地固定 OPAM 项目,我想将其编译为一个库,供另一个名为 test_tournabox 的项目使用(最终编译为 javascript)。但是,test_tournabox 的编译因链接错误而失败。
我编译 ojasmine 如下,给出目标 ojasmine.cma:
然后我像这样安装它:
我觉得奇怪的是 ojasmine.cma 不在我的项目目录中,而是在 _build 目录中。
输出是:
接下来,我cd
到我的 tournabox 项目并尝试构建测试套件:
这失败并出现错误:
似乎 ojasmine.cma 没有链接到可执行文件 test_tournabox.byte。但我希望 ocamlfind 的 -linkpkg 参数可以安排这一点。我错过了什么?
编辑:这是 META 文件:
这是ocamlobjinfo:
ocamlfind 看到它:
这里是:
这是 ojasmine.ml:
和 ojasmine.mli:
ocaml - 带有子目录的 Oasis 构建配置
我正在使用 oasis 构建我的 ocaml 项目,源代码位于名为 src 的目录中。oasis 构建文件如下所示:
现在我想将文件组织到子文件夹中,将 a.mli 和 a.ml 放入 src/util。执行此操作后,该模块对 ocamlbuild/ocamlc 变得不可见,从而导致“未绑定模块 A”错误。如果我要手动调用 ocamlc,我可以添加 -I src/util 标志以使 a.mli 再次可见。
如何在不使文件成为完整库的情况下将其他路径添加到 oasis 配置?
compiler-construction - 如何在 OCaml 编译器中遍历类型化抽象语法树
我正在尝试转储 OCaml 项目中所有标识符的类型信息,基本上它与遍历类型化抽象语法树相同(https://github.com/ocaml/ocaml/blob/trunk/typing/typedtree.mli) . 由于我是 OCaml 编译器代码库的新手,我不确定编译器是否提供了 api,因此我们可以轻松编写插件来完成这项工作,或者我们必须破解编译器代码?此外,这如何与 OCamlbuild 交互?感谢您的任何提示或建议。
ocaml - 如何为 OCaml 配置 _oasis 以设置“配置文件”标志
我在 OCaml 中有一个现有项目和一个_oasis
文件。我不知道在哪里启用ocamlbuild
.
我查阅了 Oasis 手册和代码,发现profile
setup.data 中有一个可用的变量。我认为这是 Oasis 自动生成的。
我应该在 _oasis 中包含哪些内容以设置profile
为 true ?
ocaml - OCamlbuild 没有解决子目录依赖
我有一个 OCaml 项目,但遇到了一个奇怪的问题。
目录结构如下所示:
我正在这样构建它:
关键是,tests/test.ml 依赖于tests/templatetest.ml。
当我构建它时,我得到:
我尝试在顶级目录中添加一个 _tags 文件,其中包含:
这仍然产生了同样的错误。(我相信带有 _tags 文件的 ocamlbuild tests/test.native 与我之前使用的构建行完全相同。)
我还在 ./tests 和 ./src 中创建了一个空的 _tags 文件,但这也没有改变任何东西。
有什么建议么?如果您需要,整个来源都在这里。跑吧make test
。谢谢!
ocaml - 在 OCaml 中调用其他文件中的函数
我有一个具有长度函数的 hello.ml:
call.ml 使用该函数:
在解释器模式 (ocaml) 下,我可以使用ocaml call.ml
来获取结果,但是当我尝试使用 ocamlc 或 ocamlbuild 编译它时,我得到了编译错误。
那么,如何修改caller、callee、build命令将代码编译成可执行文件呢?