Прежде всего, я прочитал "Начало работы: создание и запуск Clang". В частности, я построил его в соответствии с разделом «Использование Visual Studio». Другими словами, я создал его с помощью Visual Studio 2010.
Во-вторых, я вручную установил пути включения и библиотеки к дистрибутиву MinGW:
Простая программа, которую я пытаюсь скомпилировать:
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!" << endl;
return 0;
}
Я получаю следующую обратную связь от компилятора:
In file included from C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\iostream:39:
In file included from C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\ostream:39:
In file included from C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\ios:38:
In file included from C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\iosfwd:41:
In file included from C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\bits/postypes.h:41:
C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\cwchar:144:11: error: no member named 'fgetws' in the global namespace
using ::fgetws;
~~^
C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\cwchar:146:11: error: no member named 'fputws' in the global namespace
using ::fputws;
~~^
C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\cwchar:150:11: error: no member named 'getwc' in the global namespace
using ::getwc;
~~^
C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\cwchar:151:11: error: no member named 'getwchar' in the global namespace
using ::getwchar;
~~^
C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\cwchar:156:11: error: no member named 'putwc' in the global namespace
using ::putwc;
~~^
C:\MinGW\lib\gcc\mingw32\4.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.
Очевидный вопрос - зачем мне это?
Кроме того, я хотел бы узнать больше подробностей, а так как сайт Clang предоставляет очень краткую информацию - я подумал, что кто-нибудь может прояснить мне следующие вопросы:
- Насколько я понимаю, у Clang нет собственной стандартной библиотеки (наверное, stdc++, не так ли?). Вот почему я должен использовать заголовки и библиотеки MinGW — я прав?
- В чем разница между созданием Clang с помощью Visual Studio и MinGW?
- Должен ли я жестко включать пути в
clang/lib/Frontend/InitHeaderSearch.cpp
или я могу пропустить это и указать эти пути позже с помощью опции «-I», как я делаю на скриншоте выше?