2

我将 ocaml 与 emacs tuareg 模式一起使用,作为一个新用户,我对所有 ocaml 工具都不太了解...

最近我用 opam 安装了 ocaml-wlc,它是 ocaml 中 Wayland 库的绑定。我试图open在我的代码中导入库,但它不起作用。

经过一番研究,我发现我需要使用管理外部库的工具 ocamlfind。我在网上没有找到任何关于这个工具的教程或文档,所以我阅读了手册。

在此之后,我仍然不知道如何使用该库...

我发现 ocaml 有很多工具,但我还没有找到任何关于如何使用该生态系统的适当教程/文档。

标题询问了一个 ocamlfind 教程,但实际上我正在寻找一个关于 ocaml 工具生态系统以及如何管理简单任务(例如使用 opam 安装和使用库)的体面的教程。

谢谢

4

2 回答 2

1

它包含一个example显示如何使用它的目录:

https://github.com/Armael/ocaml-wlc/tree/master/example

简而言之,假设您使用的是 ocamlbuild,请放入true: package(wlc)您的_tags文件中。

于 2015-12-19T12:39:14.620 回答
1

用于ocamlfind list获取所有已知 ocamlfind 包的列表,以及它们的内部名称。

如果您在顶层 ( ocaml) 中激活了 findlib,那么您将获得有关将包加载到顶层的提示:

str@s132-intel:~> ocaml
        OCaml version 4.02.3

Findlib has been successfully loaded. Additional directives:
  #require "package";;      to load a package
  #list;;                   to list the available packages
  #camlp4o;;                to load camlp4 (standard syntax)
  #camlp4r;;                to load camlp4 (revised syntax)
  #predicates "p,q,...";;   to set these predicates
  Topfind.reset();;         to force that packages will be reloaded
  #thread;;                 to enable

要在顶层使用包,请#require "internalname";;使用 显示的名称#list;;,然后才能使用 open。

旁注:open Modulename缺点是隐藏功能的来源。

要编译您的代码,可以调用以 ocamlfind 为前缀的编译器,请参阅此处的 ocamlfind 文档,一般语法为:

# binary test1, use modules Unix and Str, link packages in
ocamlfind ocamlc -o test1 -packages unix,str -linkpkg test1.ml

希望这能让你开始。有关更多信息,请参见 ocaml.org。

请耐心等待,这不是具有大量材料的主流语言。但是您可以直接在他们的邮件列表上与研究人员和开发人员交谈。

于 2015-12-19T19:15:21.960 回答