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

clang++: Errors in standard header files

本文关键字:错误 文件 标准 clang++      更新时间:2023-10-16

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

clang++ -c test.cpp
#include <iostream>
int main()
{
    std::cout << "Hello world!n";
    return 0;
}

我首先尝试将INCLUDE路径设置为Microsoft VS2015标头,然后将其设置为mingw64标头,但在这两种情况下都存在内容错误(尽管实际找到的任何标头文件都没有问题)。

在mingw64的情况下,以下是一个典型的错误:

C:mingw64x86_64-w64-mingw32includestdio.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.0VCincludelimits: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

已修复:

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