Windowsでclang 3.2をビルドし、単純なhello worldプログラムを作成しようとしていました。しかし、私は以下のような多くのエラーを取得します。Windowsでclangを使用してC++ 11プログラムをコンパイルする際にエラーが発生する
d:\Marius\xyz>clang++ -stdlib=libc++ -std=c++11 -Wall xyz.cpp -o xyz.exe
clang++: warning: argument unused during compilation: '-stdlib=libc++'
In file included from xyz.cpp:12:
In file included from ./stdafx.h:18:
In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\algorithm:6:
In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xmemory:6:
In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xmemory0:9:
In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xutility:8:
In file included from C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\utility:8:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\type_traits:1072:
33: error:
'_Ty' does not refer to a value
_HAS_TRIVIAL_MOVE_CONSTRUCTOR(_Ty)
^
...
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xstddef:540:50: note:
expanded from macro '_VARIADIC_EXPAND_4'
#define _VARIADIC_EXPAND_4(FUNC, X1, X2, X3, X4) \
^
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xrefwrap:222:22:note:
expanded from macro '_CLASS_RESULT_OF_PMF_OPT_0X'
__thiscall, X2, X3, X4)
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
VC++ 2012ヘッダーのようなエラーが発生します。 Windows上でclang ++を使ってC++ 11のコードを構築することは可能ですか?追加のコマンドスイッチを用意する必要がありますか? Visual Studioのことで構築されたときにクランが正常に動作しない
'-fms-extensions'かもしれません。 – arrowd
ユーザーマニュアル(http://clang.llvm.org/docs/UsersManual.html)によると、フラグはデフォルトで有効になっています。私も-fmsc-version = 1700(つまりVS2012)と-fdelayed-template-parsing(これもデフォルトでなければならない)を設定しようとしました。検索結果はありません。 stdafx.hを削除しても、コンパイルエラーには影響しません。 –
私も-isystemでmingwヘッダを使ってみましたが、これは設定の悪夢のようです。インクルードの順番によっては、異なるエラーが発生し、コンパイルエラーなしで注文をセットアップすることができませんでした。 –