我可以编译一个不使用标准库的简单程序,但是遗憾的是,当我尝试编译这个程序时:
#include <iostream>
using namespace std;
int main()
{
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
return 0;
}
首先我遇到了这个问题:
..\src\test.cpp:9:10: 致命错误:找不到'iostream'文件
于是我将Mingw头文件添加到包含路径中,然后我得到了这个问题:
'致命错误:找不到'bits/c++config.h' 文件'
这很奇怪。如果在'bits/'中没有那个文件,为什么MingW可以工作呢?它是内置在编译器中吗?不管它了,我找到了一个实现,并在'bits/'中创建了该文件。
然后我遇到了一堆错误,包括一些奇怪的错误,这些错误似乎表明clang没有正确实现预处理器,或者我的预处理器理解有误。
C:\Program Files\CodeBlocks\MinGW\lib\gcc\mingw32\4.4.1\include\c++/cwchar:45:26: error: expected value in expression
#if _GLIBCXX_HAVE_WCHAR_H
还有许多类似的情况。那么应该使用
吗?#if defined(_GLIBCXX_HAVE_WCHAR_H)
或者#ifdef _GLIBCXX_HAVE_WCHAR_H?
如果是这样的话,那么MinGW标准库就是错误的。我猜想我错误地认为clang可以替换gcc,并且它并没有设计为与gnu标准库一起使用。如果有任何证据支持或否定这一点,都会非常受欢迎!
那么,有人有一个绝对可靠的方法在Windows PC上编译clang吗?关于clang和特别是关于Windows的信息很少。
我非常希望能让clang和LLVM工作,因为从我所读到的东西来看,它们听起来很棒。感谢您的帮助。