【问题标题】:Opam install deriving, syntax errorOpam 安装派生,语法错误
【发布时间】:2014-04-23 19:29:00
【问题描述】:

所以基本上我正在尝试使用 Opam 在我的 Mac 上安装派生库。

opam install deriving

我用ocamlfind query,看来安装成功了。

#ocamlfind query deriving                                                                                                 
/Users/shuai/.opam/system/lib/deriving 

安装后,我尝试使用 ocamlbuild 编译如下简单代码:

type stackop = PUSH | POP deriving (Show, Enum)

let s = PUSH in
  let s' = Show.show<stackop> s in 
    print_string s'

这是 _tags 文件:

<*> : package(unix), package(deriving)

命令如下:

ocamlbuild -use-ocamlfind exp.native

但是,我总是收到此错误:

+ ocamlfind ocamldep -package unix -package deriving -modules exp.ml > exp.ml.depends
File "exp.ml", line 1, characters 27-28:
Error: Syntax error
Command exited with code 2.
Compilation unsuccessful after building 1 target (0 cached) in 00:00:00.

这很奇怪,我相信语法是正确的..

谁能帮帮我?

【问题讨论】:

    标签: ocaml deriving opam


    【解决方案1】:

    您好像忘记提供deriving.syntax 包了。

    使用以下_tags 文件:

    true: syntax(camlp4o)
    true: package(deriving,deriving.syntax)
    true: thread,debug,annot
    true: bin_annot
    

    【讨论】:

    • 基本上为什么我需要syntax(calp4o)
    • @computereasy 它指示编译器运行预处理器。派生是一种语法扩展。
    • 其实我根据这个tags文件遇到了一个困惑的问题,可能是因为camlp4oOCaml之间的一些语法差异?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2014-10-25
    • 1970-01-01
    相关资源
    最近更新 更多