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

时间:2016-07-30 20:39:54

标签: c++ compiler-errors clang clang++

我刚刚在我的64位Windows 10系统上安装了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标头,然后将它们设置为mingw64标头,但两种情况都存在内容错误(尽管实际上找不到任何头文件的问题)

在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开关,但没有区别。相应的头文件与gcc和cl编译器一起工作正常。是否还有其他一些我应该使用的标题,这些标题是专门针对Clang本身定制的,还是我只是做错了什么?

谢谢,Ray

1 个答案:

答案 0 :(得分:0)

修正:

我回到LLVM clang 3.7.0(发布候选3)64位,所有问题都随着Microsoft和minGW64头文件而消失。似乎版本3.8.1必须向后退一步!