ocaml-glpk(glpk绑定)和OASIS

时间:2015-05-21 02:52:40

标签: ocaml glpk opam oasis

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

tldr问题:如何正确设置存储库中尚未提供的opam包(我不能只执行opam install X)?更多细节如下:

我正在尝试将ocaml-glpk包含在OCaml项目中。我只是通过运行makemake install来安装ocaml-glpk,如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 个答案:

答案 0 :(得分:0)

本网站不适合错误报告。你应该真的报告它here

临时解决方案是使用public function actionDelete() { if (Yii::app()->request->isPostRequest) { // we only allow deletion via POST request $this->loadModel()->delete(); if (!isset($_GET['ajax'])) $this->redirect(array('index')); } else throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.'); } 以字节码编译。

答案 1 :(得分:0)

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

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

之后,如果glpk正确地打包在opam中,它应该适用于您的设置,即仅使用oasis的{​​{1}}字段,仅此而已。