Достойная 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 для получения дополнительной информации.
И будьте терпеливы, это не основной язык с тоннами материала. Но вы можете общаться с исследователями и разработчиками непосредственно в их списках рассылки.