我已经在
Windows上构建了clang 3.2并且正在尝试构建一个简单的hello world程序.但是我收到了很多错误,如下所示.
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,X4) ^ fatal error: too many errors emitted,stopping now [-ferror-limit=] 20 errors generated.
我收到很多这样的错误,来自VC 2012标题.是否有可能在Windows上使用clang构建C 11代码?我是否必须提供额外的命令切换?
当由Visual Studio构建时,Clang无法正常工作(据说它可以在由MinGW构建时工作,但我无法自己验证).
构建Clang时,它被配置为使用用于构建它的库.由于您使用Visual Studio构建了Clang,因此Clang将尝试使用Visual Studio头文件和库.不幸的是,Clang和Visual Studio的内部结构不同,Clang无法使用特定于VS的标头.
直到libc++可以为Windows编译,Clang将(几乎可以肯定)在Visual Studio编译时不会工作.尝试使用MinGW构建它(并制作博客文章或者你如何做到这一点!),看看它是否适合你.