Facebook ReasonでCoreライブラリをリンクしたい
OCaml 4.02.3, Reason 0.0.5, OS X 10.11.5 です。
Reasonのコードは以下です。
open Core.Std;
printf "test %f" (Float.of_int 3);
コンパイルします。
$ rebuild -pkgs core a.native
エラーになってバイナリが生成されません。
何かオプションフラグを追加指定してやれば、a.nativeの生成まで出来るのではないかと思いますが、
わかる方がいたら教えていただきたいです。
Error: No implementations provided for the following modules:
Thread referenced from > > /Users/ow/.opam/4.02.3/lib/core/core.cmxa(Core)
Mutex referenced from /Users/ow/.opam/4.02.3/lib/core/core.cmxa(Core)
Condition referenced from /Users/ow/.opam/4.02.3/lib/core/core.cmxa(Core)
Event referenced from /Users/ow/.opam/4.02.3/lib/core/core.cmxa(Core)
Command exited with code 2.
Hint: Recursive traversal of subdirectories was not enabled for this build,
as the working directory does not look like an ocamlbuild project (no
'_tags' or 'myocamlbuild.ml' file). If you have modules in subdirectories,
you should add the option "-r" or create an empty '_tags' file.To enable recursive traversal for some subdirectories only, you can use the
following '_tags' file:true: -traverse <dir1> or <dir2>: traverse
Compilation unsuccessful after building 4 targets (3 cached) in 00:00:00.
一方、同じプログラムをOCamlで書き直すと多分こんな風だと思います。
open Core.Std;;
let () = printf "test %f" (Float.of_int 3);;
コンパイルします。
$ corebuild -verbose 1 a.native
ビルドは成功し実行可能なa.nativeができました。
そこで、a.cmxを作るところまでは、rebuildコマンドでも出来ているみたいなので、
$ rebuild -pkgs core a.native
が失敗した後に、corebuildコマンドを真似て以下のコマンドを手入力するとa.nativeを作成できました。
$ ocamlfind ocamlopt -linkpkg -g -thread -package core _build/a.cmx -o a.native
ですから、以下のコマンドに何かフラグを追加してやればうまくいくのではないか、と思ったのですが何かアイデアありますでしょうか。
$ rebuild -pkgs core a.native