4

Windows 7、64ビット(セルフインストーラー)にOCamlをインストールした後、簡単なexeファイルを作成しようとしました

ocamlopt HelloWorld.ml -o HelloWorld

必要に応じて、ネイティブ コード コンパイラ (ocamlopt) と Visual C++ (Visual Studio 10 がインストールされています) および Microsoft Assembler MASM バージョン 8 (MinGW もインストールされています) を使用しました。OCaml (c:\ProgramFiles\Ocaml\bin)、MinGW (c:\ProgramFiles\MinGW\bin)、MASM (C:\masm32\bin) のパス変数も設定しました。ただし、最善の努力と多くの検索にもかかわらず、エラーメッセージを回避できません

**Fatal error, Cannot find file "crt2.o"
File "caml_startup", line 1, characters 0-1:
Error: error during linking.

ただし、crt2.o ファイルがある MinGW の lib フォルダーに HelloWorld.ml ファイルを配置する場合は除きます。答えは簡単かもしれませんが、行き詰まっています。どんな助けでも大歓迎です。

4

4 に答える 4

2

ドキュメントに書かれていることとは逆に、Cygwin もインストールする必要があります。

もう 1 つの問題は、32/64 ビットの非互換性である可能性があります。つまり、一部のツールは 32 ビット ターゲットを使用し、他のツールは 64 ビット ターゲットを使用しています。

于 2012-03-09T10:23:49.723 に答える
2

私はmingwがライブラリファイルを見つけるために何らかの方法が必要だと思います.ソースからコンパイルされたとき-ライブラリへのパスはバイナリにハードコードされています.そうでない場合-何らかの方法(環境変数)で検索します. 正しい環境を提供する可能性が高い mingw (または msys) シェルからビルドするか、LIB 環境変数を手動で設定してみてください。ところで、mingw の問題をデバッグするときは、最初に ocaml を除外して、最初に単純な C プログラムをビルドしてみる方が簡単です。

于 2012-03-09T09:35:57.713 に答える
1

使用したOCamlインストーラー(URL)についてもっと正確に教えてください。このページにあるインストーラーを試しましたか?いくつかの潜在的な問題と、ネイティブコンパイル用にMinGW/MSYSをセットアップする方法がリストされています。

関連するドキュメントを更新する方法をメンテナに伝えることができるように、私たちがあなたが抱えている問題、そして最終的にはあなたが見つけた解決策を明確に理解することが非常に重要です。

于 2012-03-10T06:39:38.880 に答える
1

インストーラーを書きました。

問題を解決するために、詳細な手順はhttp://protz.github.com/ocaml-installer/にあります。実際には、適切な FLEXLINKFLAGS を環境変数としてエクスポートする必要があります。これは、ocamlopt が flexlink (インストーラー パッケージ) を使用するためです。ただし、flexlink 自体は、msys 環境ではそのままでは機能しません。

インストーラーの次のバージョンでは、すべてが問題なく動作する cygwin の使用が推奨されます。

乾杯、

ジョナサン

于 2012-04-03T20:35:41.340 に答える