2013年11月16日

MinGWとGHCは共存出来ないっぽい

あるC++プログラムをMinGWのGCCでコンパイルしようとしたら、吐き気がする程の大量のエラーメッセージが表示された。いやいやエラーになるにしてもこの量は有り得ないわ。何かが悪さしてるんじゃないか。

で、試しに超簡単なコード書いてコンパイルしてみようとしたらコケる。

> type test.cpp
#include <iostream>

int main(int argc, char *argv[])
{
		std::cout << "hello" << std::endl;
		return 0;
}

> gcc test.cpp
C:/Program Files/Haskell Platform/2012.4.0.0/mingw/bin/ld.exe: cannot open outpu
t file a.exe: Permission denied
collect2: ld returned 1 exit status

> g++ test.cpp
Info: resolving std::cout  by linking to __imp___ZSt4cout (auto-import)
c:/program files/haskell platform/2012.4.0.0/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line.
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.

MinGWなのに何故か "Haskell Platform" の文字が。

> PATH
PATH=C:\Program Files\Haskell\bin;C:\Program Files\Haskell Platform\2012.4.0.0\lib\extralibs\bin;C:\Program Files\Haskell Platform\2012.4.0.0\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Haskell Platform\2012.4.0.0\mingw\bin;C:\Documents and Settings\AmaiSaeta\bin\mingw\bin;C:\Documents and Settings\AmaiSaeta\bin\mingw\msys\1.0\bin

"C:\Document and Settings\AmaiSaeta\bin\mingw" 以下がMinGWのインストール先。

成る程、GHCは内部にMinGW環境持ってて、それと競合してると。

しかしこれはどうした物だろう。MinGW関係のディレクトリをGHCのディレクトリより先に持ってくると、今度はGHC周りでトラブるのが目に見えてるし。GHC関係、またはMinGW関係のPATH設定をバッチファイルに抜き出して、必要になる直前に実行するというのは、流石にメンドクサイので避けたいんだけどなぁ。

というか、GHCMinGWを内部に抱えてるのに吃驚。

ラベル:mingw GHC Haskell C++
posted by 天井冴太 at 02:10| Comment(0) | TrackBack(0) | Tool | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください

この記事へのトラックバック