我想为一个大型项目结合 BOLT、SEXP 和 ocamlViz。问题是,SEXP 和 BOLT 使用的是 CamlP4,而 ocamlviz 使用的是 camlp5。但是,对于 ocamlc/ocamlopt 的 -pp 参数,我怎样才能将调用组合到一个链中呢?
这是我对没有 ocamlviz 的实际项目的呼吁:
ocamlopt.opt -c -I +dynlink -I +bolt -I +threads -I +lablgtk2 -I +extlib -I +pcre -I +netsys -I +netstring -I +json-wheel -I +num -I + nums -I +sexplib -I +zip -I +xml-light -I +xmlrpc-light -I +equeue -I +netclient -g -annot -p -thread -pp 'camlp4o/usr/lib/ocaml/bolt/bolt_pp.cmo -logger '\''foo.native'\'' -level DEBUG -- -I/usr/lib/ocaml/sexplib -I/usr/lib/ocaml/type-conv pa_type_conv.cmo pa_sexp_conv.cmo' -o foo.cmx foo.ml
最佳答案
由于显而易见的原因,不可能同时通过两个不同的预处理器预处理源文件,并且一个接一个地使用也是不可能的,因为第一个不会识别用于第二个的语法。解决方案是要么在不同的源文件中使用不同的语法,要么将 ocamlviz 移植到 camlp4。
关于ocaml - 将camlp4和camlp5结合在ocamlopt的-pp字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5300017/