Clang sur Windows

Tout d'abord, j'ai suivi "Prise en main: création et Exécution de Clang". En particulier, j'ai construit selon "l'Aide de Visual Studio" section. En d'autres termes, j'ai construit à l'aide de Visual Studio 2010.

Ensuite, j'ai régler manuellement inclure et de la bibliothèque des chemins de MinGW distribution:

Clang sur Windows

Le programme simple, je suis en train de compiler:

#include <iostream>
using namespace std;

int main() {
    cout << "Hello, World!" << endl;
    return 0;
}

- Je obtenir les commentaires suivants à partir du compilateur:

In file included from C:\MinGW\lib\gcc\mingw32.5.2\include\c++\iostream:39:
In file included from C:\MinGW\lib\gcc\mingw32.5.2\include\c++\ostream:39:
In file included from C:\MinGW\lib\gcc\mingw32.5.2\include\c++\ios:38:
In file included from C:\MinGW\lib\gcc\mingw32.5.2\include\c++\iosfwd:41:
In file included from C:\MinGW\lib\gcc\mingw32.5.2\include\c++\bits/postypes.h:41:
C:\MinGW\lib\gcc\mingw32.5.2\include\c++\cwchar:144:11: error: no member named 'fgetws' in the global namespace
  using ::fgetws;
        ~~^
C:\MinGW\lib\gcc\mingw32.5.2\include\c++\cwchar:146:11: error: no member named 'fputws' in the global namespace
  using ::fputws;
        ~~^
C:\MinGW\lib\gcc\mingw32.5.2\include\c++\cwchar:150:11: error: no member named 'getwc' in the global namespace
  using ::getwc;
        ~~^
C:\MinGW\lib\gcc\mingw32.5.2\include\c++\cwchar:151:11: error: no member named 'getwchar' in the global namespace
  using ::getwchar;
        ~~^
C:\MinGW\lib\gcc\mingw32.5.2\include\c++\cwchar:156:11: error: no member named 'putwc' in the global namespace
  using ::putwc;
        ~~^
C:\MinGW\lib\gcc\mingw32.5.2\include\c++\cwchar:157:11: error: no member named 'putwchar' in the global namespace
  using ::putwchar;
        ~~^
6 errors generated.
Build error occurred, build is stopped
Time consumed: 646  ms.  

La question évidente: pourquoi dois-je l'obtenir?

En outre, je voudrais savoir plus de détails, et depuis, Clang site web fournit une très brève information - j'ai pensé que quelqu'un pourrait clarifier les questions suivantes à moi:

  1. Autant je comprends Clang ne dispose pas de sa propre bibliothèque standard (stdc++ je suppose, n'est-ce pas?). C'est pourquoi je dois utiliser MinGW les en-têtes et les bibliothèques - ai-je le droit?
  2. Quelle est la différence entre la construction de Clang avec Visual Studio et MinGW?
  3. Dois-je code en dur chemins à inclure dans clang/lib/Frontend/InitHeaderSearch.cpp ou je peux l'ignorer et de plutôt de spécifier les chemins plus tard par "-I" option comme je le fais dans la capture d'écran ci-dessus?
  • La combinaison que j'ai eu à travailler dans le passé est à modifier InitHeaderSearch.cpp pour inclure le chemin d'accès à mon MinGW inclure des dossiers et ensuite de construire avec le MinGW de la chaîne. J'ai aussi été en mesure de construire à l'aide de Visual C++ de la chaîne, mais je n'étais pas en mesure de comprendre comment obtenir le construit compilateur d'utiliser les en-têtes et les bibliothèques de l'installer MinGW (Visual C++ C++ Standard Library en-têtes ne peuvent pas être utilisées, car elles s'appuient largement sur Visual C++fonctions spécifiques).
  • Ouais c'est exactement ce à quoi je pensais. Mais la plus grande confusion pour moi, c'est le cas de la construction à l'aide de Visual C++ ou MinGW est liée à inclure et à la bibliothèque des chemins utilisés lors de l'utilisation du compilateur Clang. En d'autres termes, je dois pouvoir choisir librement ces chemins après avoir compilé Clang. Pourquoi sur terre serait de ces chemins dépend du compilateur que j'ai utilisé pour construire Clang?
  • Clang devrait être en mesure d'analyser VC++ en-têtes actuellement. La seule problématique de l'analyse de la zone MFC est IIRC.
  • Je suis complètement d'accord avec ce que vous dites. J'ai essayé d'obtenir la clang plugin de travail sur Sublime Text 2 sur Windows et l'étrange stdc++/header problèmes sont... eh bien, étrange.