2016-02-07 6 views
0

Мне известны подобные вопросы на этом сайте, но ни один из них не помог решить мою проблему.Unbound module Camlp4

Я очень новичок в OCaml и я использую следующий учебник об использовании Camlp4 https://github.com/ocaml/camlp4/wiki/OCaml_code_generation_tutorial

Однако я получаю сообщение об ошибке в первой строке: open Camlp4.PreCast говоря «Unbound модуль Camlp4»

Существует camlp4.exe, где я загрузил OCaml, поэтому предположил, что он был установлен. Я попытался это и на Windows 8 и Xubuntu

Это вход Я передаю в командную строку для компиляции файла: ocamlc -o test.exe test.ml где test.ml это файл, который содержит строку с ошибкой

+1

Дно учебник, кажется, дает гораздо больше, чем компилятор призывание, что вы используете:> ocamlc -I + camlp4 -pp camlp4of.opt camlp4lib.cma pa_vector.ml camlp4 -parser pa_vector.cmo –

ответ

-2

Вы должны знать, что camlp4 устарел, вместо этого вы должны использовать ppx.

Если вам нужно скомпилировать старые программы с помощью camlp4, у них должны быть инструкции по сборке. В любом случае, очень редко можно использовать ocamlc, вы должны попробовать ocamlbuild или хотя бы использовать ocamlfind.

+1

camlp4 устарела? ORLY? Как можно использовать ppx для модификации синтаксиса? – ygrek

+0

От camlp4 README: «Camlp4 был частью официального дистрибутива OCaml до версии 4.01.0. С тех пор он был заменен более простой системой, которую легче поддерживать и изучать: ppx-перезаписывающие устройства и точки расширения». И большинство крупных проектов, использующих camlp4 (Lwt, Core), переходят на ppx. Джейн Стрит, крупнейший пользователь Ocaml, преобразует свою базу кода из camlp4 в ppx: https://blogs.janestreet.com/converting-a-code-base-from-camlp4-to-ppx/ Это то, что устарело. – Thomash

+0

Одна из последних статей на http://ocaml.org/community/planet/: http://rgrinberg.com/blog/2016/02/15/scrap-your-camlp4/ – Thomash