Прежде всего, я следовал «Начало работы: создание и запуск 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", как я это сделал на скриншоте выше?