gpt4 book ai didi

ocaml - 如何在 ppx_deriving 中使用 jbuild 和 ppx_driver

转载 作者:行者123 更新时间:2023-12-01 03:23:06 25 4
gpt4 key购买 nike

我正在尝试使用 jbuilder连同ppx_deriving (特别是 ppx_deriving_yojson)但现在卡住了一个多小时。我目前的方法是 jbuild文件,包含以下内容:

(jbuild_version 1)
(executables
((names (my-binary))
(libraries
(ppx_deriving
ppx_deriving_yojson
cohttp
yojson))
(preprocess (pps (ppx_deriving_yojson ppx_driver.runner)))))

但这导致
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

运行生成的 ppx_driver_build/.ppx/default/ppx_deriving_yojson+ppx_driver.runner/ppx.exe手动使用 -print-transformations给出空输出,所以我显然错过了一些东西。

使用 topkg 可以很好地构建代码仅包含 ppx_derivingppx_deriving_yojson作为依赖。

最佳答案

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

代码:

type t = {x: int; y: int} [@@deriving to_yojson]

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

和 sample jbuild文件:
(jbuild_version 1)

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

(install
((section bin)
(files ((main.exe as main)))))

关于ocaml - 如何在 ppx_deriving 中使用 jbuild 和 ppx_driver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43771425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com