У меня есть новый проект, который я пытаюсь скомпилировать с OASIS.Все мои пакеты, кроме одного, устанавливаются с помощью opam.
Мой _oasis
файл выглядит следующим образом:
(* usual package fields *)
Executable myexe
Path: src
BuildTools: ocamlbuild
MainIs: myexe.ml
BuildDepends:
some_packages_installed_with_opam
mylocalpackage
Я пытался oasis setup
затем ./configure
, но OCamlfind ответил, что не может 'т найти mylocalpackage
.Поэтому я решил посмотреть, где OCamlfind ищет пакеты, и обнаружил, что вы можете установить переменную OCAMLPATH
для добавления каталогов, в которые могут быть установлены пакеты.Поэтому я сделал export OCAMLPATH=path_to_mylocalpackage:$OCAMLPATH
и попробовал снова.
oasis setup
дает мне такой результат:
findlib: [WARNING] While parsing 'path_to_my_local_package/META.in':
The `directory' directive is required in this META definition
и ocamlfind query mylocalpackage
дает мне этот результат:
ocamlfind: Package `mylocalpackage' not found
Я не знаю, должен ли я написать в _oasis
, где найти этот пакет или если изменение переменной OCAMLPATH
является решением.Но если это так, я не понимаю предупреждение.
Шаги для воспроизведения
Для тех, кто хотел бы попробовать:
Скачать why3
./configure --enable-local
make
Создать новый проект с этим _oasis
файлом
OASISFormat: 0.4
Name: myexe
Version: 0.1
Synopsis: test file
Authors: SO
License: CC-BY-NC-SA
Plugins: StdFiles (0.4), DevFiles (0.4)
Alphafeatures: ocamlbuild_more_args
XOCamlbuildExtraArgs:
-use-ocamlfind
Executable myexe
Path: src
BuildTools: ocamlbuild
MainIs: myexe.ml
BuildDepends:
unix,
str,
num,
dynlink,
zip,
menhirLib,
why3
NativeOpt: -dtypes -g -annot
ByteOpt: -dtypes -g -annot
CompiledObject: best
oasis setup
./configure
- Вы должны иметь эту ошибку:
ocamlfind: Package 'why3' not found