2016年1月15日金曜日

[haskell][gcc][win] Windows版Haskell Platform付属のgccでC++11のコードをコンパイルする方法

Windows版のHaskell Platformにはmingwが同梱されておりgccが含まれています。現在自分のPCにはHaskell Platform 2014.2.0.0をインストールしているのですが、これに付属されているgccでC++11のコードをコンパイルしようとすると、以下のようなエラーになってしまいました。
% gcc -std=c++11 cpp11.cpp
cc1plus.exe: error: unrecognized command line option '-std=c++11'

-stdオプションで"c++11"を指定しても、認識してくれません。
本家のサイトによると、'-std=c++11'オプションはgcc 4.7でサポートされたようです。これに対し、Haskell Platform 2014.2.0.0に付属されているgccのバージョンを確認したところ、4.6であることがわかりました。
% gcc --version
gcc.exe (rubenvb-4.6.3) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

gccは4.6で、'-std=c++11'オプションは認識できないバージョンであるため、冒頭のエラーとなってしまいます。
ただ、gcc4.6でもC++11(相当)コードをコンパイルする方法はあります。gcc 4.3~4.6では'-std=c++0x'と指定すれば。以下のように実行すればコンパイルすることができます。
% gcc -std=c++0x cpp11.cpp


参考:

0 件のコメント:

コメントを投稿