3

C コードを呼び出すライブラリがあります。-custom、-cclib、-l フラグを使用してコンパイルします。これは、ocamlc を使用してライブラリに対してコードをコンパイルすると正常に動作します。

しかし、「ocaml」トップレベルを使用して次のようなスクリプトを実行すると:

ocaml -I /opt/godi/lib/ocaml/pkg-lib/xxxx xxx.cma myprog.ml

それは言います:

Error: The external function `caml_yyyy' is not available

トップレベルに伝えるために追加のパラメータが必要ですか?

4

2 に答える 2

3

「ocamlmktop」を使用して独自のトップレベルを構築する必要があります。

$ ocamlmktop -custom -I /opt/godi/lib/ocaml/pkg-lib/xxxx xxx.cma -o ocaml_with_xxx

次に、それを使用できます:

$ ./ocaml_with_xxx -I /opt/godi/lib/ocaml/pkg-lib/xxxx

トップレベルがそこに含まれるライブラリのインターフェイス ファイルを見つけることができるように、 -I がまだ必要であることに注意してください。

于 2012-07-24T11:29:08.717 に答える
2

IIRC でコンパイルされたライブラリをトップレベルで使用することはできません-custom。トップレベルがそれらを取得できるように、動的にロード可能なスタブをコンパイルする必要があります。これは、たとえばoasisを使用すると非常に簡単に実行できますが、ocaml ツールを手動で呼び出す場合は多少複雑になります。

于 2012-07-24T07:19:37.180 に答える