Достойная ocamlfind документация

Я использую ocaml с режимом emacs tuareg, как новый пользователь, я не очень много знаю обо всех инструментах ocaml...

Недавно я установил ocaml-wlc с opam, это привязка для библиотеки wayland в ocaml. Я попытался импортировать библиотеку с open в моем коде, но это не работает.

После некоторых исследований я обнаружил, что мне нужно использовать ocamlfind, инструмент для управления внешней библиотекой. Я не нашел ни одного учебного пособия или документации по этому инструменту в Интернете, поэтому я прочитал руководство.

После этого я до сих пор не знаю, как использовать библиотеку...

Я обнаружил, что есть много инструментов для ocaml, но я еще не нашел ни одного учебного пособия / документации о том, как использовать эту экосистему.

В заголовке спрашивается об учебнике ocamlfind, но на самом деле я ищу достойный учебник об экосистеме инструментов ocaml и о том, как управлять простыми задачами, такими как установка и использование библиотек с помощью opam.

Спасибо

2 ответа

Содержит example каталог, показывающий, как его использовать:

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

Короче говоря, если вы используете ocamlbuild, поставьте true: package(wlc) в вашем _tags файл.

Использование ocamlfind list чтобы получить список всех известных пакетов ocamlfind, соответственно их внутренних имен.

Если у вас активирован findlib на вашем верхнем уровне (ocaml) тогда вы получите подсказки о загрузке пакетов на верхний уровень:

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 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 для получения дополнительной информации.

И будьте терпеливы, это не основной язык с тоннами материала. Но вы можете общаться с исследователями и разработчиками непосредственно в их списках рассылки.

Другие вопросы по тегам