2016-04-21 44 views
0

寫在README.md的命令不起作用(ocamlfind的使用如圖)。據我所知,ppx_metaquot執行文件是一種改寫文件,這樣我就可以以這種方式使用準報價翻譯我的代碼:如何在OCaml中使用ppx.metaquot?

ocamlfind ppx_tools/rewriter ~/.opam/system/lib/ppx_tools/ppx_metaquot sample.ml 

但這可能不是假定的方式,所以請告訴我正確的用法。

回答

1

WD時要使用一些PPX,通常使用WD -package ocamlfind的選項:

ocamlfind ocamlc -c -package ppx_tools.metaquot sample.ml 

這編譯sample.ml使用預處理ppx_tools.metaquot

如果你想看到PPX在人類可讀的形式輸出,據我所知事情變得有點複雜:

ocamlfind ppx_tools/rewriter -ppx ~/.opam/system/lib/ppx_tools/ppx_metaquot sample.ml 

或以下比較好:

ocamlfind ppx_tools/rewriter -ppx `ocamlfind query ppx_tools`/ppx_metaquot sample.ml 

有可能是比這更簡單的方法,但我不知道。

+0

謝謝你,但在我的環境下,用ocamlc發生一些錯誤: SH:ppx_tools.metaquot:找不到命令 文件「mpr.ml」,1號線: 錯誤:錯誤運行外部預處理 命令行,而:ppx_tools.metaquot'/ var/folders/gk/5tlptk8j44751wj4bw_2lzm00000gn/T/camlppxb52f14''/ var/folders/gk/5tlptk8j44751wj4bw_2lzm00000gn/T/camlppx459e01' – henoc

+0

Ah,sorrry,我犯了一個錯字。 'ocamlfind ocamlc -c -package ppx_tools.metaquot sample.ml'是正確的。我也修復了答案部分。 – camlspotter

+0

哦,我明白了,ppx也可以作爲一個包使用,謝謝。 – henoc