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

标签 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 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/

相关文章:

c++ - 按行格式化日志表

c++ - Perl 正则表达式运行速度快于 C++ Boost 实现

C 编译错误指针

c++ - 没有返回语句时的 Clang 优化 : if(false) is entered?

c - 未找到 flycheck 头文件,但 makefile 是正确的

c++ - 对象转换 C++; int的加倍

c++ - 使用迭代器 C++ 删除 vector 中的重叠字符串

compilation - 获取 WebStorm 中依赖的 TypeScript 文件的编译错误

c - 使用链表的 C 堆栈中的预期标识符

c++ - 如何自动打印输入的c++函数参数值