问题标签 [ocaml-dune]

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.

0 投票
1 回答
1518 浏览

ocaml - 使用 dune 运行 OUnit 测试

我在运行 OUnit 测试时遇到了困难,主要是因为我对沙丘和 OUnit 都不熟悉。dune我跑步时抱怨dune runtest

这是项目结构:

这是dune

这是test/dune

我可以看到出现错误是因为 dune 不知道f.ml,因此不知道fdune 文件中的 about 。

如何以了解我使用的库f.ml的方式进行 dune 编译?如何正确运行单元测试?test/duneftest/f_test.ml

0 投票
1 回答
2190 浏览

ocaml - OCaml / dune build 中的未绑定模块

我第一次尝试 OCaml 并尝试一起构建几个文件。

当我运行时:

我正进入(状态:

这是我的 bin/main.ml 文件:

在 lib/inner/rule.ml 中,包含:

所以我想我需要在文件中以某种方式导入 rule.mlbin/main.ml文件?

0 投票
0 回答
186 浏览

ocaml - 如何使用参数运行 dune build @doc

我有一个使用沙丘的 ocaml 项目。我想使用 Odoc 生成文档。目前,正在运行dune build @doc,但我想将-short-functors选项传递给 Odoc。如何通过沙丘将期权传递给 Odoc?

0 投票
1 回答
494 浏览

ocaml - 如何使用沙丘链接到本地​​ ocaml 库

我接手了一个由主程序和库组成的ocaml项目,但库是独立构建的。到目前为止,使用“ocamlopt -I mylib.cmxa myprogram.ml”链接主程序是可能的——但是我在使用带有 ocamlopt 的 opam 库时遇到了问题,所以我决定改用“dune”。

我的问题是:如何使用 dune 与 ocaml 库链接,以便结果与上面的 ocamlopt 行相同?

0 投票
0 回答
71 浏览

ocaml - 我如何让沙丘执行 shell 命令作为库的依赖项

我有一个库,其中包含一些 C 存根,这些存根需要与其他一些我需要直接使用 gcc 编译的 C 代码链接。

我正在尝试这样做,但是调用 gcc 的规则似乎没有执行:

0 投票
1 回答
93 浏览

ocaml-dune - 如何使用“dune utop --watch”?

我希望dune utop或另一个 OCaml 顶级在代码运行时获取我对代码所做的更改。似乎dune utop --watch是为了做到这一点而设计的。真的吗?我该如何使用它?

在我的实验dune utop --watch中,忽略了我保存到模块源代码中的更改。执行dune build命令的变体似乎也没有帮助。

尽管显然与我不兼容,dune但我也尝试过#use并且#mod_use没有任何运气的指令:utop在重新启动之前似乎仍然没有收到我的代码更改。

0 投票
1 回答
247 浏览

ocaml - 有没有办法在 OCaml 沙丘中用连字符声明可执行文件?

我正在使用沙丘设置一个演示项目,并希望将可执行文件命名为“hello-world.exe”而不是“hello_world”。如果我尝试构建项目,我会收到编译器错误。如何在文件名中声明带有连字符的可执行文件?

我正在使用沙丘 1.9.3 和 OCaml 4.05.0。

沙丘:

你好世界.ml

构建错误

0 投票
1 回答
2161 浏览

ocaml - 如何禁用错误(警告 66):未使用打开!在沙丘

根据https://github.com/ocaml/ocaml/pull/1110,OCaml 4.08 及更高版本会针对未使用的模块打开发出警告,即使它们是用open!. open! Foo这与使用来确定以下代码将在模块上下文中的常见做法产生摩擦Foo(无论是否从内部使用任何东西Foo)。此外,由于dune默认情况下将所有警告视为致命错误,这将导致默认dev配置文件中的沙丘构建失败,并出现以下错误

如何禁用此警告和致命错误?

0 投票
1 回答
835 浏览

ocaml - 不支持沙丘版本

我正在尝试从源代码安装 google-drive-ocamlfuse,但 prereuiqisites 让我有点困惑。我遇到了这个错误:

我安装了沙丘 1.7 版:

但显然,gapi-ocaml 需要沙丘 1.11,还是我完全弄错了?我没有使用 OCaml 或沙丘或所有其他工具的经验......

我怎样才能安装这个?

0 投票
0 回答
57 浏览

ocaml - 在沙丘冲突中运行 utop:extlib 和 base64

我有一个使用extliband的项目base64dune在构建过程中使用。构建工作正常,但是当我尝试运行时dune utop,我收到以下消息:

这似乎是一个已知问题。在extlib页面上,它base64 < 2.0.0列为冲突,这意味着以后的版本不应该冲突(我有 version 3.2.0)。有什么我想念的吗?用这两个包构建自定义顶层是不可行的吗?谢谢你的帮助!