Ocaml - синтаксическая ошибка при попытке компиляции - PullRequest
0 голосов
/ 22 апреля 2020

я получил это в моем prog.ml:

#require "batteries";;
#require "Base";;
open Base;;
open Batteries;;
...

Когда я пытаюсь скомпилировать:

ocaml c prog.ml -o prg

возвращает следующую ошибку:

1 | #require "battery" ;;

  ^ Error: Syntax error

Какая правильная команда для компиляции программы?

1 Ответ

2 голосов
/ 22 апреля 2020

Строки, начинающиеся с #directive, имеют значение только на верхнем уровне. Они не являются частью реального синтаксиса OCaml. Они просто говорят верхнему уровню делать разные вещи, которые полезны во время интерактивного сеанса.

Если вы собираетесь скомпилировать код (а не взаимодействовать с ним на верхнем уровне), вам просто нужно убедиться, что модули доступны для компилятора. Вы можете использовать необычную систему сборки или флаг -I, который сообщает компилятору, где искать модули.

(Вы также должны удалить строки #directive из вашего исходного кода, Конечно.)

...