Я пытаюсь заставить Clang работать в Windows, чтобы в итоге разработать с Qt Creator, чтобы убедиться, что это жизнеспособная альтернатива Visual Studio.
Я получил LLVM и Clang 3.2 (SVN Revision 163238) для компиляции с помощью MinGW w64 (mingw-w64-bin_i686-mingw_20111220.zip) и также указывал на каталоги заголовков gcc С++, добавляя AddMinGWCPlusPlusIncludePaths("D:/Code/mingw/lib/gcc", "x86_64-w64-mingw32", "4.7.0");
to clang/lib/Frontend/InitHeaderSearch.cpp
, хотя я думаю, что это может быть не самый современный метод. В любом случае, Кланг, похоже, находит большинство этих заголовков.
Однако при компиляции простого Hello World:
#include <iostream>
int main(int argc, char* argv[])
{
std::cout << "test\n";
return 0;
}
с помощью 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
Итак, Clang, по-видимому, находит несколько заголовков С++, включая iostream
, но не находит wchar.h
. Оказывается, что wchar.h
находится в .../include/c++\tr1
, где Clang не ищет его. Перемещение этих заголовков TR1 вверх по одному каталогу также не помогает.
Что я сделал здесь неправильно? Является ли библиотека gcc С++ несовместимой с Clang, поскольку, по-видимому, она до сих пор не интегрировала некоторые библиотеки TR1 в стандарт? Где я могу получить совместимую библиотеку С++ 11 для Clang (для Windows!)?