构建Clang(windows MinGW,clang3.2(G++))

jopen 11年前

作为一个开发人员,开发工具是很重要的帮手,这里,我要给大家介绍的是如何在Windows上构建你的Clang,并且配置好。
首先 你要获得Clang的源代码,如果你要从源码库获取源代码,建议安装 svn ,Tortoisesvn在Windows上是很好用的svn之一,而且你可以下载中文语言包。
你可以从http://llvm.org/svn/llvm-project/  克隆你需要的模块,cfe是clang的目录 trunk是主干,tags是分支,稳定版本都在tags中,如clang 3.2最终代码就是http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_32/final/这个目录
你也可以从http://llvm.org/releases/3.2/下载源代码,已经打包了的。
当然你也可以直接下载已经编译好的包。

你需要得到的有 LLVM,Clang,Compiler-RT,各自解压,将Clang的源代码移动到LLVM\tools,将Compiler-RT的源代码移动到llvm\Projects,

建议你使用MinGW编译,如果使用VisualStudio编译还要安装GnuWin工具。而且建议使用官方的MinGW,其他的版本有些工具无法使用或使用导致错误。

http://mingw.org/ 

我将MinGW安装在D盘,配置好了以后,你可以选择下载旧版本的LLVM/Clang自举一下,不过自举可不一定成功。

  配置好了Mingw,修改llvm\tools\clang\lib\Frontend\InitHeaderSearch.cpp 324行(左右) 修改默认Mingw目录(里面是c:/mingw/)

运行Mintty终端切换到llvm目录

./configure   --enable-optimized --disable-assertions

 漫长等待 .......

如果没有错误就继续

make

构建Clang(windows MinGW,clang3.2(G++))

如果没有错误最后编译成功

这里讲一下,如果用clang来自举会出现问题,ld链接器和clang++兼容存在一点点问题,

LLVM Bug  http://llvm.org/bugs/show_bug.cgi?id=14663 点击进入

如果要clang自举 先要用gcc编译clang3.2 安装好后 再用clang3.2来编译clang3.2,看起来比较复杂,不过已经成功了!3.2编译有问题 

编译好了 两种选择,第一是将LLVM拷贝到Mingw目录,这样Clang依赖Mingw的环境,但是某些程序编译不过去,修改源文件就是这个目的。 

第二种是将gClib ,libstdc++ 分贝拷贝到llvm\include,llvm\lib\clang\[version]\include,并修改,设置一个批处理脚本

将Mingw\bin和llvm\bin添加到path,运行脚本就可以通过控制台编程了