WinGW版OCamlのocamloptをcygwinなしで実行……

ここでのOCamlは公式サイトからダウンロードしたインストーラを使ってぶち込んだ4.00.1
MinGWはMinGW32(たぶん)

ocamloptというのを使ってみよう。

'i686-w64-mingw32-as' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。


MinGW版のocamloptはcygwinを使わないと動かないらしい。

cygwin入れてやってみるかぁ〜。

動くには動くが、MinGWcygwinを両方入れておくのは気持ちが悪い。

cygwinのみでまとめてみようとするも色々とめんどくせぇことになる。

じゃあMinGWだけでできるのかしら?なんだかcygwin使わなくても動かしている記事をちょっと見かけた気がする。

MinGW\bin\にas.exeがあったので、名前似てるから代わりにこいつ走らせてみればいいんじゃね?ということで、i686-w64-mingw32-as.batを作成してパスの通っているところにぶん投げた。中身はこれだけ。

as %*


もう一回ocamloptをやってみる。

'i686-w64-mingw32-gcc' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
** Fatal error: Cannot run i686-w64-mingw32-gcc -print-sysroot


先ほどと同様にi686-w64-mingw32-gcc.batを作成。これも中身はこれだけ。

gcc %*


もう一回やってみる。

** Fatal error: Cannot find file "libws2_32"


そうだライブラリのパスを通していなかった。ということでオプションでパスを指定する。1箇所指定しただけだとまた同様のエラーが出たので、最終的に以下のような感じになった。

ocamlopt -ccopt "-L MinGW\libのパス" -ccopt "-L MinGW\lib\gcc\mingw32\4.7.0のパス" hoge.ml


動いた!!!一応!!!

……でもこれでいいのかしら?
これでやって壊滅的なことになってら泣く。