问题标签 [ocamlfind]

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 投票
3 回答
3640 浏览

ocaml - 使用“ocamlfind”使 OCaml 编译器和顶层查找(项目特定)库

我正在尝试将ocamlfind与 OCaml 编译器和顶层一起使用。据我了解,我需要将所需的库放在项目根目录的 _tags 文件中,以便ocamlfind工具负责加载它们 - 允许我在模块中打开它们,如下所示:

目前,我的 _tags 文件如下所示:

如果我不想编译我的项目,我显然可以使用 ocamlc 或 ocamlopt 参数启动ocamlfind命令,但我没有看到以相同方式启动顶层的选项。有没有办法做到这一点(类似“ ocamlfind ocaml”)?

我也不知道如何将我的项目特定模块放在 _tags 文件中:假设我有一个模块名称Land。我目前正在使用该#use "land.ml"指令打开文件并加载模块,但有人建议这不是一个好习惯。我应该在 _tags 中使用什么语法来指定它应该由ocamlfind加载(考虑到 land.ml 不在 ocamlfind 搜索路径中)?

谢谢你,查理 P。

编辑:根据这篇文章的第一个答案, _tags 文件不能与ocamlfind一起使用。上面的问题仍然存在,列表中只有一个新问题:将库指定为ocamlfind的正确方法是什么?

0 投票
3 回答
2009 浏览

ocaml - 使用它编译C lib和OCaml exe,全部使用ocamlfind

我正在尝试研究如何使用ocamlfind该 C 库编译 C 库和 OCaml 可执行文件。

我整理了一组相当愚蠢的示例文件。

我相信以下是编译库的方法:

现在我似乎无法使用创建的库:

OCaml 工具对我来说有点神秘,所以任何指针都会受到欢迎。

0 投票
1 回答
698 浏览

ocaml - ocamlfind/ocamlbuild 工具链如何与包的项目本地副本一起使用?

我试图保持我的项目自包含,在项目存储库中构建和引用所有主要的 3rd 方库依赖项。我项目的主要 ocaml 部分依赖于 ocamlbuild。

但是对于像 Batteries Included 这样的复杂包,似乎强烈期望它们通过 ocamlfind 链接到一个项目中。ocamlfind 似乎假设软件包将被全局安装。(我意识到它允许环境变量及其 conf 指向备用位置,但它基本上似乎仍然是围绕包是全局配置的假设构建的——它没有等效-I-L标志来动态扩展包的搜索路径,例如,可以设置环境变量以动态覆盖 ocamlfind 配置以搜索项目本地树,但这比单纯的参数要尴尬得多,而且在不同时删除的情况下这样做似乎也很有挑战性主要系统包的可发现性site-lib,这可能也是需要的。)

对于使用 ocamlbuild 的项目,在项目本地树中构建和构建非平凡的 3rd 方包的明智策略是什么?

0 投票
1 回答
8243 浏览

ocaml - ocamlfind,在哪里可以找到/如何构建?

我对 ocaml 几乎一无所知,但我想安装Coccinelle(在 cygwin 上),它依赖于二进制ocamlfind.

但是,从http://caml.inria.fr/download.en.html安装 ocaml-3.11.0-win-mgw.exe 或 ocaml-3.11.0-win-msvc.exe ,没有这样的二进制文件。事实上,安装目录中没有一个文件包含对字符串“ocamlfind”的任何引用。

而下载源码(ocaml-3.12.1),grep只找到以下引用:

并且这些都不是安装此类二进制文件的任何参考。所以我对如何进行有点迷茫。回到旧版本的 ocaml?

顺便说一句,本机 ocaml cygwin 包也不包含任何 ocamlfind 二进制文件。

0 投票
2 回答
796 浏览

makefile - 我的 Makefile 中有硬编码路径 - 如何使用 ocamlfind 消除这些路径?(或如何使用 ocamlbuild 或 omake 代替)

我正在尝试构建一个需要 camlp4 扩展的 ocaml 项目(在本例中为 pa_deriving)。这是我的Makefile:

这个 Makefile 有效;它完成了工作,但问题是我上面有硬编码的路径,例如: /home/p/godi-3.12.1.0/lib/ocaml/site-lib/deriving-ocsigen/pa_deriving.cma 指的是我的 OCaml 的 godi 安装。我想摆脱这些,以便我可以分发代码和 Makefile,以便任何人都可以使用它进行构建。

我应该为此使用 omake 还是 ocamlbuild ?我想使用 omake 并且为此使用了 OMakefile ,但没​​有任何工作 - 任何建议将不胜感激。

更新:我尝试将 ocamlbuild 与以下 _tags 文件一起使用:

使用以下 ocamlbuild 命令:ocamlbuild -use-ocamlfind test_logic.native -classic-display

我得到:

我需要在 _tags 文件中添加什么来纠正这个问题?

0 投票
1 回答
2110 浏览

installation - ocamlfind 没有找到用 godi 安装的包

我试图用 omake 编译一个 OMakefile。我用 GODI 安装了所有需要的软件包。GODI 向我展示了这些已安装的软件包。Ocamlfind 没有找到所有这些包。使用 ocamlfind list 它只显示一些。

它没有找到的包裹是:电池和ocamlgraph。有没有人有解决这个问题的想法。我的目标是使用别人创建的程序。

问候

斯文

0 投票
1 回答
1865 浏览

ocaml - 使用 'ocamlfind install' 设置 Ocaml 库,然后在 ocamlbuild 中使用该库

我按照此处的说明使用 ocamlfind install 在 site-lib 中设置安装库。我有两个库:一个称为逻辑库,另一个称为布尔库。在每种情况下,我都在库中安装了 .cmo、.cmx、.cmi 和 .mli 文件,例如:

然后,当我使用 ocamlbuild 构建另一个依赖于逻辑和布尔值的项目时,我收到以下错误消息:

然后,我将逻辑和布尔项目中的 .o 文件复制到 site-lib 中各自的区域,并对其进行了编译和链接。

我想知道为什么需要 .o 文件以及为什么这里涉及 gcc?

这是我的 _tags 文件,以防万一:

0 投票
1 回答
472 浏览

ocaml - 安装 findlib 错误?

我从http://download.camlcity.org/download/findlib-1.3.2.tar.gz下载了 findlib 。configure成功后,make all报告:

我正在使用 FreeBSD 9.0。之后pkg_add -r ocaml,没有findlib。

真挚地!

0 投票
1 回答
478 浏览

ocaml - 使用 ocamlbuild 将选项传递给 camlp4

我正在使用 ocamlbuild 对 ocamlfind 的原生支持来简化我的项目的构建过程。Filefoo.ml依赖于使用camlp4 的宏进行条件编译。该_tags文件包含以下内容:

这很好用,但我无法将选项传递给camlp4。如果不使用 ocamlbuild+ocamlfind 自动化,命令行将是这样的:

-DFOO但是在使用 ocamlbuild+ocamlfind 时如何传递 camlp4变量?我觉得应该有一个简单的命令行选项,而不是乱用myocamlbuild.ml.

0 投票
1 回答
684 浏览

ocaml - 使用 Ocamlbuild 构建带有配置文件信息的本机可执行文件

如何使用 Ocamlbuild 使用启用的配置文件信息进行构建?那里似乎-p行不通。

现在,我用ocamlopt这个。例如,

如何做同样的事情