首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OCamlbuild和camlp4选项

OCamlbuild和camlp4选项
EN

Stack Overflow用户
提问于 2012-04-18 22:18:06
回答 2查看 573关注 0票数 5

我正在使用camlp4.宏来启用条件编译。我在通知OCamlbuild用"use_jscore“标记的某些文件必须使用给定的camlp4选项进行预处理时遇到了问题。这是我目前所拥有的:

代码语言:javascript
复制
let _ = dispatch begin function
  | After_rules ->
    flag ["ocaml"; "use_jscore"] (S[A"-package"; A"camlp4.macro"; A"-syntax"; A"camlp4o"; A"-ppopt"; A"-DUSE_JSCORE"]);

但这一切都被OCamlbuild错误地转义了。我使用的是ocamlfind,所以基本上我想告诉OCamlbuild的是,所有带有"use_jscore“标签的OCaml文件都必须由camlp4.宏进行预处理,它也被赋予了-DUSE_JSCORE选项。

EN

回答 2

Stack Overflow用户

发布于 2012-04-19 05:31:35

_tags和命令行方法应该也可以使用,尽管它不会针对单个文件。

_tags的内容:

代码语言:javascript
复制
<*.*>: syntax(camlp4o), package(camlp4.macro)

命令行:

代码语言:javascript
复制
ocamlbuild -use-ocamlfind -cflags -ppopt,-DUSE_JSCORE ...
票数 4
EN

Stack Overflow用户

发布于 2012-04-19 01:06:33

您要匹配的标志列表中缺少一个标志:

代码语言:javascript
复制
 let options = S[...] in
 flag ["ocaml"; "compile"; "use_jscore"] options;
 flag ["ocaml"; "ocamldep"; "use_jscore"] options

实际上,您只想在计算依赖项(启用"ocamldep“标志)和编译(启用”camlp4“标志)时使用编译选项,而不是在使用预处理器(启用"pp”标志)或链接(启用" link“标志时)时使用编译选项。

所以现在如果你使用ocamlbuild -use-ocamlfind <target>,它应该可以正常工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10211326

复制
相关文章

相似问题

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