【问题标题】:Specifying prefix in opam file在 opam 文件中指定前缀
【发布时间】:2014-12-30 04:52:33
【问题描述】:

我有一个带有以下行的 opam 文件:

install: [make "install" "prefix=${prefix}$"]

我的意图是opam install 将执行类似以下的内容(我已经测试过):

make install prefix=/home/laheadle/.opam/4.02.0

在我的 Makefile 中:

install: js
    cp ./tournabox.css ./tournabox.js $(prefix)/lib

但我得到了错误:

#=== ERROR while installing tournabox.1.0 =====================================#
# opam-version 1.2.0
# os           linux
# command      make install prefix=${prefix}$
# path         /home/laheadle/.opam/4.02.0/build/tournabox.1.0
# compiler     4.02.0
# exit-code    2
# env-file     /home/laheadle/.opam/4.02.0/build/tournabox.1.0/tournabox-7593-d2c37b.env
# stdout-file  /home/laheadle/.opam/4.02.0/build/tournabox.1.0/tournabox-7593-d2c37b.out
# stderr-file  /home/laheadle/.opam/4.02.0/build/tournabox.1.0/tournabox-7593-d2c37b.err
### stdout ###
# ocamlbuild -cflag -annot -use-ocamlfind -pkgs js_of_ocaml.log,js_of_ocaml,js_of_ocaml.syntax -syntax camlp4o tournabox.byte
# js_of_ocaml +weak.js tournabox.byte
# lessc tournabox.less tournabox.css
# ocamlbuild -cflag -annot -use-ocamlfind -pkgs js_of_ocaml.log,js_of_ocaml,js_of_ocaml.syntax -syntax camlp4o tournabox.byte
### stderr ###
# make: *** Recursive variable `prefix' references itself (eventually).  Stop.

我做错了什么?

【问题讨论】:

    标签: ocaml opam


    【解决方案1】:

    OPAM 使用%{prefix}%,而不是${prefix}$

    您可以在文档的Creating OPAM Packages 部分看到前缀的使用。

    【讨论】:

      【解决方案2】:

      这个错误信息似乎是由 make 打印出来的:

      ‘递归变量‘xxx’引用自身(最终)。停止。' 这意味着您已经定义了一个普通(递归)make 变量 xxx,当它展开时,它将引用自身 (xxx)。这是不允许的;要么使用简单扩展的变量(‘:=’或‘::=’),要么使用附加运算符(‘+=’)。请参阅如何使用变量。

      https://www.gnu.org/software/make/manual/html_node/Error-Messages.html

      【讨论】:

      • 但我不明白我写的内容是如何产生递归变量的。 opam 不应该将 ${prefix}$ 扩展为非递归的吗?
      • 如果你希望 opam 扩展变量prefix,你可以看看github.com/ocaml/opam/wiki/…
      猜你喜欢
      • 2021-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-01
      • 1970-01-01
      • 2017-04-08
      相关资源
      最近更新 更多