前言:我是OCaml,OPAM和OASIS的新手。
tldr问题:如何正确设置存储库中尚未提供的opam
包(我不能只执行opam install X
)?更多细节如下:
我正在尝试将ocaml-glpk包含在OCaml项目中。我只是通过运行make
和make 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很好地协作,我们将不胜感激。
谢谢!
答案 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}}字段,仅此而已。