OCamlの小さな自己完結型Fortranライブラリの関数を使用しようとしています。私はgfortran -shared mvndst.f -o sharedlib
でライブラリをコンパイルできます。 nm sharedlib
を呼び出すと、シンボルのリストが表示されます。 ... T _mvndfn_
。共有ライブラリのシンボルをOCamlのtoploopにctypesでロードして使用する
ctypesチュートリアルの例https://github.com/ocamllabs/ocaml-ctypes/wiki/ctypes-tutorialを読んだ後、私はlet mvndfn = foreign "mvndfn" (ptr double @-> returning float)
のようなことをしようとしました。シンボルが見つかりませんでした。私はそれをどこに見ても言いませんでしたので、驚くことではないかもしれませんが、私はどのように知りません。
これはまったく動作しますか?どのように私はtoploopにこの共有ライブラリを探すように指示しますか?それはFortranではないことが重要ですか?プログラムがtoploopで動作する場合、どのようにしてプログラムをコンパイルしてリンクするのですか?
(これは、OS X上で)
感謝!それはあなたがそれを知っているときにとても明らかです... – user3240588
トップレベルで 'Foreign.foreign ;;'とタイプするだけで、オプションの引数を関数の型に見つけることができます:) –