clang++:标准 header 文件中的错误

clang++: Errors in standard header files

我刚刚在我的 64 位 Windows10 系统上安装了 64 位版本的 Clang 3.8.1 和 MinGW-w64 5.1.0,之后安装和路径配置似乎完全成功我尝试使用显示的命令行编译以下代码:

clang++ -c test.cpp

#include <iostream>
int main()
{
    std::cout << "Hello world!\n";
    return 0;
}

我首先尝试将我的 INCLUDE 路径设置为 Microsoft VS2015 headers,然后将它们设置为 mingw64 headers,但是两种情况下都存在内容错误(尽管有实际找到的 header 个文件都没有问题。

在 mingw64 案例中,以下是典型错误:

C:\mingw64\x86_64-w64-mingw32\include\stdio.h:179:86: error: expected ';'
after top level declarator int __cdecl __mingw_sprintf (char *
__restrict__ , const char * __restrict__ , ...) __MINGW_NOTHROW;

而在 VS2015 案例中,以下是典型的:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\limits:611:33:
error: use of undeclared identifier 'char16_t' template<> class numeric_limits<char16_t>

我还尝试了 -std=c++98 到 -std=c++14 的每个开关,但没有任何区别。各自的 headers 与 gcc 和 cl 编译器一起工作良好。是否有其他一些我应该使用的 headers 是专门为 Clang 本身量身定做的,或者我只是做错了什么?

谢谢,雷

固定:

我回到 LLVM clang 3.7.0(候选发布版本 3)64 位,Microsoft 和 minGW64 头文件的所有问题都消失了。看来3.8.1版本一定是退步了!