我刚刚在我的 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 header ,然后将它们设置为 mingw64 header ,但在这两种情况下都存在内容错误(尽管实际找到的任何 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 开关,但没有任何区别。各自的头文件与 gcc 和 cl 编译器一起工作良好。我是否应该使用专门为 Clang 本身量身定制的其他一组 header ,或者我只是做错了什么?
谢谢,雷
最佳答案
固定:
我回到 LLVM clang 3.7.0(候选发布版本 3)64 位,所有问题都随着 Microsoft 和 minGW64 头文件一起消失了。看来3.8.1版本一定是退步了!
关于c++ - clang++: 标准头文件中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38678285/