ocamlを4.03.0にアップグレードしました。 その後、いくつかのラッパー・ライブラリーがビルドに失敗し、「提供されたインプリメンテーションがありません」というエラーが発生しました。OCaml 4.03.0でFFIが "実装が提供されていません"とコンパイルできませんでしたエラー
私の状況を説明するための小さな例を用意します。
私は私はhello.mli
で、OCamlのためのインターフェース・ファイルを準備する、hello_stubs.c
#include<stdio.h>
#include<caml/mlvalues.h>
CAMLprim value caml_print_hello(value unit)
{
printf("Hello\n");
return Val_unit;
}
次ににおけるCコードを書きます。
external print_hello : unit -> unit = "caml_print_hello"
その後、私はこれらのプログラムをコンパイルするにはmain.ml
Hello.print_hello();;
でメインプログラムをコーディング、私は次のコマンドを実行します。
残念ながら、最後のコマンドは、次のエラーメッセージで失敗しました。メッセージによると
File "_none_", line 1:
Warning 58: no cmx file was found in path for module Hello, and its interface was not compiled with -opaque
File "main.ml", line 1:
Error: No implementations provided for the following modules:
Hello referenced from main.cmx
、 私はocamlc -opaque hello.mli
を試してみたが、それは問題を解決していませんでした。
ocaml 4.02.3では上記のコマンドが正常に動作することも確認しました。
ocaml 4.03.0でこの例をコンパイルする方法を知っていますか?