アプリケーションを OCaml 4.02.3 から 4.03.0 に移植しています。
に次のものがあるとしますlexer.ml
。
type t = T [@@deriving sexp]
let () =
sexp_of_t |> ignore;
print_endline "hai"
次のように実行しようとしています。
ocamlbuild -use-ocamlfind -pkg ppx_sexp_conv -cflags '-w @a-4-31' lexer.byte --
しかし、次のエラーが発生します。
Warning 31: files lexer.cmo and /Users/vladimir/.opam/4.03.0+flambda/lib/ocaml/compiler-libs/ocamlcommon.cma(Lexer) both define a module named Lexer
File "_none_", line 1:
Error: Some fatal warnings were triggered (1 occurrences)
compiler-libs
モジュールも呼び出されていることを理解していますがLexer
、それは私のレクサーと衝突します:
コンパイラ ライブラリをリンクしようとしているわけではありません。で使用されていることは理解していますが
ppx_sexp_conv
、これはプリプロセッサであるため、コンパイラ ライブラリをアプリにリンクする必要はありません。警告 31 は単なる警告であり、回避策として明示的に無視しようとしています (
-w @a-4-31
) が、うまくいきません。以前は 4.02.3 で動作していました。