Прежде всего, я следил за "Начало работы: создание и запуск 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 не имеет своей собственной стандартной библиотеки (stdС++, я думаю, не так ли?). Вот почему я должен использовать заголовки и библиотеки MinGW - я прав?
- В чем разница между построением Clang с Visual Studio и MinGW?
- Нужно ли мне жестко кодировать пути в
clang/lib/Frontend/InitHeaderSearch.cpp
, или я могу пропустить его и скорее указать эти пути позже через параметр "-I", как показано на скриншоте выше?