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 скомпилировать в байт-код.

Другие вопросы по тегам