当我要求使用 ocamlopt 时,为什么 dune 使用 ocamlc?
Why is dune using ocamlc when I asked to use ocamlopt?
$ dune build ./src/main.exe --profile=release
ocamlc src/.main.eobjs/byte/ast.{cmi,cmo,cmt} (exit 2)
(cd _build/default && /usr/bin/ocamlc.opt -w -40 -O3 -g -bin-annot -I src/.main.eobjs/byte -I /home/jackprograms/.opam/default/lib/cairo2 -I /home/jackprograms/.opam/default/lib/lablgtk3 -I /usr/lib/ocaml/threads -no-alias-deps -o src/.main.eobjs/byte/ast.cmo -c -impl src/ast.ml)
/usr/bin/ocamlc.opt: unknown option '-O3'.
我 运行 这个,沙丘正在使用 ocamlc 字节码...我正在使用 exe
这意味着本机,正如我在沙丘文档中看到的那样。为什么它是 运行 ocamlc 而它应该是 运行 ocamlopt?
(executable
(name main)
(libraries lablgtk3)
(modes exe))
(ocamllex
(modules lexer))
(ocamlyacc
(modules parser))
(env
(dev
(flags (:standard -w +42)))
(release
(flags (:standard -O3))))
^ 在 src
目录中
它仍然会使用ocamlc
编译.cmi
个文件。
不使用 flags
(例如 (flags (:standard -O3))
),而是使用 ocamlopt_flags
.
(executable
(name main)
(libraries lablgtk3)
(modes exe))
(ocamllex
(modules lexer))
(ocamlyacc
(modules parser))
(env
(dev
(flags (:standard -w +42)))
(release
(ocamlopt_flags (:standard -O3))))
$ dune build ./src/main.exe --profile=release
ocamlc src/.main.eobjs/byte/ast.{cmi,cmo,cmt} (exit 2)
(cd _build/default && /usr/bin/ocamlc.opt -w -40 -O3 -g -bin-annot -I src/.main.eobjs/byte -I /home/jackprograms/.opam/default/lib/cairo2 -I /home/jackprograms/.opam/default/lib/lablgtk3 -I /usr/lib/ocaml/threads -no-alias-deps -o src/.main.eobjs/byte/ast.cmo -c -impl src/ast.ml)
/usr/bin/ocamlc.opt: unknown option '-O3'.
我 运行 这个,沙丘正在使用 ocamlc 字节码...我正在使用 exe
这意味着本机,正如我在沙丘文档中看到的那样。为什么它是 运行 ocamlc 而它应该是 运行 ocamlopt?
(executable
(name main)
(libraries lablgtk3)
(modes exe))
(ocamllex
(modules lexer))
(ocamlyacc
(modules parser))
(env
(dev
(flags (:standard -w +42)))
(release
(flags (:standard -O3))))
^ 在 src
目录中
它仍然会使用ocamlc
编译.cmi
个文件。
不使用 flags
(例如 (flags (:standard -O3))
),而是使用 ocamlopt_flags
.
(executable
(name main)
(libraries lablgtk3)
(modes exe))
(ocamllex
(modules lexer))
(ocamlyacc
(modules parser))
(env
(dev
(flags (:standard -w +42)))
(release
(ocamlopt_flags (:standard -O3))))