Clang和C++ 11标题

Opo*_*sum 11 c++ windows mingw clang c++11

我正在努力让Clang在Windows上工作,最终使用Qt Creator进行开发,看看它是否是Visual Studio的可行替代品.

我LLVM和3.2锵(SVN版本163238),使用编译MinGW的W64(mingw-w64-bin_i686-mingw_20111220.zip)和还指出,海湾合作委员会的C++头文件目录加入AddMinGWCPlusPlusIncludePaths("D:/Code/mingw/lib/gcc", "x86_64-w64-mingw32", "4.7.0");clang/lib/Frontend/InitHeaderSearch.cpp,虽然我认为这可能不是最上调迄今为止的方法.无论如何,Clang似乎找到了大部分标题.

但是,在编译简单的Hello World时:

#include <iostream>
int main(int argc, char* argv[])
{
  std::cout << "test\n";
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用clang++ main.cpp我得到这个错误:

In file included from main.cpp:1:
In file included from D:/Code/mingw/lib/gcc/x86_64-w64-ming32/4.7.0./include/c++\iostream:39:
In file included from D:/Code/mingw/lib/gcc/x86_64-w64-ming32/4.7.0./include/c++\ostream:39:
In file included from D:/Code/mingw/lib/gcc/x86_64-w64-ming32/4.7.0./include/c++\ios:39:
In file included from D:/Code/mingw/lib/gcc/x86_64-w64-ming32/4.7.0./include/c++\iosfwd:41:
In file included from D:/Code/mingw/lib/gcc/x86_64-w64-ming32/4.7.0./include/c++\postypes.h:41:
D:/Code/mingw/lib/gcc/x86_64-w64-ming32/4.7.0./include/c++\cwchar:45:10: fatal error:
      'wchar.h' file not found
Run Code Online (Sandbox Code Playgroud)

因此,Clang显然发现了几个C++标题,iostream但未能找到wchar.h.事实证明,这wchar.h是位于.../include/c++\tr1Clang不寻找的地方.将这些TR1标题移到一个目录中也无济于事.

我在这做错了什么?gcc C++库是否与Clang不兼容,因为它显然还没有将一些TR1库集成到标准中?我在哪里可以获得兼容的Clang C++ 11库(适用于Windows!)?

rub*_*nvb 1

您错误配置/错误分配了 Clang。您还需要在添加版本的位置附近添加 MinGW-w64 路径。

使用我在此处提供的预构建版本并提供解释: Clang on Windows

我修改了 Clang 以使用 MinGW-w64 标头和 GCC 4.6.3 libstdc++ 标头和库。目前,它停留在 3.2 版本,但如果您对源应用类似的补丁(不幸的是我没有补丁文件),您应该也可以使用它。

我提供的只是提取,添加到 PATH 中,然后使用。并且仅限 32 位。

另请注意,您正在使用 MinGW-w64 GCC 的旧版本,您应该真正更新它。