首先,我按照“开始使用:构建和运行Clang”的步骤操作。特别是,我按照“使用Visual Studio”部分的指导进行构建,并且使用了Visual Studio 2010。
其次,我手动设置了MinGW发行版的包含路径和库路径:
显而易见的问题是 - 为什么会出现这种情况?
此外,我想了解更多细节,由于Clang网站提供的信息非常简要 - 所以我想有人可以澄清以下问题:
1.就我所知,Clang没有自己的标准库(我猜是stdc++,不是吗?)。这就是为什么我必须使用MinGW的头文件和库 - 我是对的吗?
2.使用Visual Studio和MinGW构建Clang之间有什么区别?
3.我是否必须在clang/lib/Frontend/InitHeaderSearch.cpp中硬编码包含路径,还是可以跳过它,并像我在上面的截图中那样稍后通过“-I”选项指定这些路径?
其次,我手动设置了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网站提供的信息非常简要 - 所以我想有人可以澄清以下问题:
1.就我所知,Clang没有自己的标准库(我猜是stdc++,不是吗?)。这就是为什么我必须使用MinGW的头文件和库 - 我是对的吗?
2.使用Visual Studio和MinGW构建Clang之间有什么区别?
3.我是否必须在clang/lib/Frontend/InitHeaderSearch.cpp中硬编码包含路径,还是可以跳过它,并像我在上面的截图中那样稍后通过“-I”选项指定这些路径?