首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在ppx_deriving中使用jbuild和ppx_driver

如何在ppx_deriving中使用jbuild和ppx_driver
EN

Stack Overflow用户
提问于 2017-05-04 07:14:14
回答 1查看 411关注 0票数 4

我正在尝试将jbuilderppx_deriving (特别是ppx_deriving_yojson)一起使用,但是被卡住了一个多小时。我当前的方法是一个jbuild文件,其中包含以下内容:

代码语言:javascript
运行
复制
(jbuild_version 1)
(executables
((names (my-binary))
(libraries
 (ppx_deriving
  ppx_deriving_yojson
  cohttp
  yojson))
(preprocess (pps (ppx_deriving_yojson ppx_driver.runner)))))

但这会导致

代码语言:javascript
运行
复制
Command [5] exited with code 1:
$ (cd _build/default && ../.ppx/default/ppx_deriving_yojson+ppx_driver.runner/ppx.exe --dump-ast -o src/my_file.pp.ml --impl src/my_file.ml)
File "src/my_file.ml", line 16, characters 5-13:
Error: Attribute `deriving' was not used

_build/.ppx/default/ppx_deriving_yojson+ppx_driver.runner/ppx.exe中使用-print-transformations手动运行生成的ppx_driver会得到空输出,因此我显然遗漏了一些东西。

通过将ppx_derivingppx_deriving_yojson作为依赖项包括在内,代码可以很好地使用topkg构建。

EN

Stack Overflow用户

发布于 2018-01-17 06:14:30

从较新版本的ppx_deriving_yojson开始,这应该是可能的。

代码:

代码语言:javascript
运行
复制
type t = {x: int; y: int} [@@deriving to_yojson]

let () = print_endline (Yojson.Safe.to_string (to_yojson {x= 1; y= 2}))

和一个示例jbuild文件:

代码语言:javascript
运行
复制
(jbuild_version 1)

(executables
 ((names (main))
  (preprocess (pps (ppx_deriving_yojson)))
  (libraries (ppx_deriving_yojson.runtime))))

(install
 ((section bin)
  (files ((main.exe as main)))))
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43771425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档