Ocamlbuild覆盖默认选项

时间:2013-02-28 21:48:34

标签: ocaml ocamlbuild

我的OCaml安装无法识别#!,因此camlp4o无法独立运行。它必须被调用为“ocamlrun camlp4o”。

我尝试在插件中添加一个标志。但新标志只是添加到现有标志。

结果是ocamlbuild将使用

调用编译器

“ - pp camlp4o ocamlrun camlp4o”。

一种有效的解决方法是引入一个新标签'my_camlp4o'。但是,ocamlbuild的文档确实提到了“覆盖”默认值的功能。看来ocamlc,ocamlopt可以被覆盖。但我们可以覆盖camlp4o吗?它可以在插件中完成吗?

1 个答案:

答案 0 :(得分:2)

支持通过-ocamlc <command>-ocamldep <command>等命令行选项更改Ocamlbuild中的默认值。不幸的是,camlp4目前不是可自定义命令集的一部分。您能否使用issue tracker申请此功能?

(与此同时,我建议使用一种解决方法,例如,用可执行脚本替换PATH中的ocamlrun可执行文件。(

修改

另一种解决方法是通过ocamlfind完成所有编译,它支持覆盖camlp4命令(请参阅the documentation),并且可以作为所有ocamlbuild命令的基础,使用{{ 1}}选项。不幸的是,ocamlfind本身只支持在编译时进行预处理(在调用实际编译器时),而不是独立的源到源处理,因此可能无法覆盖您自己的用例。