-1

前言:我是 OCaml、OPAM 和 OASIS 的新手。

tldr 问题:如何正确设置opam存储库中尚不可用的软件包(我不能这样做opam install X)?更多详情如下:

我正在尝试将ocaml-glpk 包含在 OCaml 项目中。我只是通过运行安装了 ocaml-glpk makemake 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 一起工作的帮助将不胜感激。

谢谢!

4

2 回答 2

0

本网站不适用于错误报告。你真的应该在这里报告。

临时解决方案是使用CompiledObject: byte字节码编译。

于 2015-05-21T11:43:07.220 回答
0

如果您正在使用opam,那么最好使用它安装应用程序,而不是手动安装。尝试清理您的系统并删除您安装的任何内容,然后执行以下操作:

$ eval `opam config env`
$ opam install ocaml-glpk

之后,如果正确glpk打包opam,它应该可以与您的设置一起使用,即仅使用oasis'BuildDepends字段,仅此而已。

于 2015-05-21T12:25:50.587 回答