【发布时间】:2011-06-29 18:08:05
【问题描述】:
我遵循了以下step by step guide,经过一番摆弄后,我设法让 clang 使用 code:blocks 和 MinGW 进行编译。太好了,所以现在我可以将 Clang 模块添加到 Eclipse(当你可以有四个 IDE 时为什么还要有一个)并开始编译。
我可以编译一个不使用标准库的简单程序,但不幸的是,当我尝试编译时:
#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 工作,因为从我所读到的内容中它们听起来很棒。任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
Clang 是否支持 Windows?我的印象是它没有。
-
它确实可以在 Windows 上编译和运行——我已经做到了。只是标准库还没有运气。
-
几周前我设法让最新版本的 clang 与 MinGW 一起工作,所以它肯定可以工作!您能否发布您对 InitHeaderSearch.cpp 所做的编辑?在我安装的 MinGW(MSysGit 附带)中,c++config.h 位于“c:/msysgit/mingw/lib/gcc/mingw32/4.4.0/include/c++/mingw32/bits”中
-
@mike 啊,也许这是我的问题 - 我没有对“InitHeaderSearch.cpp”进行任何更改。您对该文件做了哪些更改?
-
从 LLVM 3.1 开始,有适用于 Windows 的实验性 Clang 二进制文件:llvm.org/releases/download.html#3.1
标签: c++ mingw eclipse-cdt codeblocks clang