ocaml-glpk (привязки glpk) и ОАЗИС
Предисловие: я новичок в OCaml, OPAM и OASIS.
tldr вопрос: как правильно настроить пакет с opam
это еще не доступно в хранилище (я не могу просто сделать opam install X
)? Более подробная информация приведена ниже:
Я пытаюсь включить ocaml-glpk в проект OCaml. Я установил ocaml-glpk просто запустив make
а также make install
как указано в README, и данный пример компилируется и работает правильно. Тем не менее, я использую OASIS для генерации системы сборки моего проекта, и я не уверен, как ее настроить. У меня есть тот же пример (переименован в glpkExample.ml
в src
папка) и следующее в моем _oasis
файл:
Executable "glpkExample"
Path: src
MainIs: glpkExample.ml
CompiledObject: best
BuildDepends:
glpk
После запуска oasis setup -setup-update dynamic
, Я бегу make
и получите следующую ошибку:
ocaml setup.ml -build
Finished, 0 targets (0 cached) in 00:00:00.
+ /home/dimitrios/.opam/system/bin/ocamlfind ocamlopt -g -linkpkg -package glpk src/glpkExample.cmx -o src/glpkExample.native
File "_none_", line 1:
Error: Cannot find file /home/dimitrios/.opam/system/lib/glpk/glpk.cmxa
Command exited with code 2.
Compilation unsuccessful after building 4 targets (3 cached) in 00:00:00.
E: Failure("Command ''/usr/bin/ocamlbuild' src/glpkExample.native -tag debug' terminated with error code 10")
make: *** [build] Error 1
Кажется, в библиотеке glpk отсутствует файл cmxa, необходимый для компиляции собственного исполняемого файла. Я не уверен, как это исправить. Скомпилировать glpkExample.ml
правильно, мой Makefile включает в себя /home/dimitrios/.opam/system/lib/glpk
а также использует OCamlMakefile
, что очень долго и запутанно. Будем весьма благодарны за любую помощь по настройке этого с помощью OASIS или как настроить ocaml-glpk для правильной работы с OASIS.
Спасибо!
2 ответа
Если вы используете opam
тогда лучше установить приложение с ним, а не вручную. Попробуйте очистить вашу систему и удалить все, что вы установили, а затем выполните:
$ eval `opam config env`
$ opam install ocaml-glpk
Потом, если glpk
упакован в opam
правильно, он должен работать с вашей настройкой, т. е. только с oasis
"s BuildDepends
поле и не более того.
Этот сайт не подходит для отчетов об ошибках. Вы должны действительно сообщить об этом здесь.
Временное решение заключается в использовании CompiledObject: byte
скомпилировать в байт-код.