gpt4 book ai didi

ocaml - 使用 ocamlbuild 将选项传递给 camlp4

转载 作者:行者123 更新时间:2023-12-01 11:50:16 24 4
gpt4 key购买 nike

我正在使用 ocamlbuild 对 ocamlfind 的原生支持来简化我项目的构建过程。文件 foo.ml 依赖于使用 camlp4 的宏进行条件编译。 _tags 文件包含以下内容:

<foo.ml>: package(camlp4.macro), syntax(camlp4o)

这很好用,但我在将选项传递给 camlp4 时遇到了问题。如果不使用 ocamlbuild+ocamlfind 自动化,命令行将是这样的:

camlp4o pa_macro.cmo -DFOO file.ml

但是在使用 ocamlbuild+ocamlfind 时,如何将 -DFOO 变量传递给 camlp4?我觉得应该有一个简单的命令行选项,而不是必须弄乱 myocamlbuild.ml

最佳答案

你会弄乱 myocamlbuild.ml。没有插入 -ppopt 的内置规则,因此它相当冗长,但很简单。

myocamlbuild.ml:

open Ocamlbuild_plugin ;;
dispatch begin function
| After_rules ->
pflag ["ocaml";"compile";] "define" (fun s -> S [A"-ppopt"; A ("-D"^s)]);
pflag ["ocaml";"ocamldep";] "define" (fun s -> S [A"-ppopt"; A ("-D"^s)])
| _ -> ()
end;;

_tags 中:

"foo.ml": syntax(camlp4o), package(camlp4.macro), define(FOO)

关于ocaml - 使用 ocamlbuild 将选项传递给 camlp4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11866324/

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