OCaml: несвязанный модуль из родительского каталога на верхнем уровне
Я пытаюсь загрузить модуль из родительского каталога в интерпретатор верхнего уровня.
#load "../Syntax.cmo";;
open Syntax
let foo = bar
Где бар находится в синтаксисе. У меня есть модуль Синтаксис в родительском каталоге. Загрузка модуля Синтаксис не вызывает никаких проблем, но открытая строка выдает ошибку:
Error: Unbound module Syntax
Я также попытался удалить открытое:
#load "../Syntax.cmo";;
let foo = Syntax.bar
Но это дает мне ту же ошибку, что и синтаксис в родительском каталоге.
Есть ли что-нибудь вокруг этого?
1 ответ
Решение
Вы не должны использовать относительные пути, вместо этого используйте #directory
директива:
#directory "..";;
#load "Syntax.cmo";;
let foo = Syntax.bar;;
Более того, определите свою библиотеку с помощью oasis или других высокоуровневых инструментов и используйте #require
загружать ваши библиотеки, вместо того, чтобы заниматься низкоуровневыми директивами.