1

あまり具体的なものを必要としないOCamlでバイナリを生成する方法を理解しようとしている間、私は夢中になっています(たとえば、OCamlビルドツールとして何かをインストールしている)。

私はOMakeを使用していますが、自分のマシンで作業している間はすべてが十分にクールに見えます。

OCAMLPACKS[] = str unix batteries

非常にうまく機能しますが、実行可能ファイルを配布しようとすると、次のエラーが発生します。

Fatal error: exception Sys_error("/usr/godi/share/camomile/database/general_category.mar: No such file or directory")

はい、私はGODIを使用していますが、このエラーの明らかな理由はわかりません。誰かが私を教えてくれますか?さらに、スタンドアロンアプリケーションの構築に関するトリックがある場合は、教えてください(x64バージョンでeverylibをコンパイルしたGODIについてはすでに議論していますが、x86実行可能ファイルを生成できません)

前もって感謝します

4

2 に答える 2

3

カモミールライブラリにはランタイム設定が必要です。設定方法については、README.txtを参照してください。.mar特に、正しく機能するにはランタイムファイル(欠落しているファイル)が必要です。

于 2011-03-06T14:04:14.980 に答える
2

私はOMakeも、バッテリーも、GODIもCamomileも使用していません。しかし、私が見たところ、問題は、Camomileを内部で使用する必要があると思われるバッテリーに対してリンクし、Camomileがサービスの一部を提供するためにファイルシステムに保存されたデータに依存しているという事実に起因しているようです。そのデータが最終ホストに存在しない場合、ロードに失敗します。

純粋に静的なexcutablesを出荷することは、OCamlで行うのはかなり簡単なことであることに注意してください。ただし、そのためには、使用するライブラリを検討する必要があります(たとえば、カモミールを使用する場合は、サポートファイルを同梱する必要があります)。

于 2011-03-06T14:06:24.253 に答える