使用Mingw编译Clang

最近,看几篇文章说clang不错,心有所动,于是凭着GCC都有windows版的经验在网络找,结果呢一无所获。不过,在llvm的官网文档(http://clang.llvm.org/get_started.html )中看到 "On Unix-like Systems”,于是在电光闪耀间,我决定自己编译一个windows clang。

      第一步:安装环境

      按照http://clang.llvm.org/get_started.html 提示,首先下一个Mingw(www.mingw.org/) 本使用的mingw为mingw-get-inst-20120426.exeGCC 4.6.2 。注意一定要包全都下载好,检查方法你可以再次点击mingw-get-inst-20120426.exe或者更绝的方法把 MinGW\var\lib\mingw-get\Data 目录删除,其中 MingW是你的安装目录。其他您还需要下载python(http://www.python.org/ftp/python/),和 groff(http://sourceforge.net/projects/mingw/files/MSYS/Extension/groff/)下载其中的”groff-1.20.1-2-msys-1.0.13-ext.tar.lzmagroff-1.20.1-2-msys-1.0.13-bin.tar.lzma“ ,我把它们解压(你可能作用到 7zip www.7-zip.org/)到在 MinGW\msys 下 。整体安装完毕,启动MinGW Shell。进入MinGW\msys\1.0\home\Administrator(Administrator 为你的windoiws当前用户)。你也可以在其他目录中编译,如在C:\llvm的话,你得cd /C/llvm ,E盘,你得 /E/ ,如此类推,大小写不限。

第二步:签出 LLVM 代码:

svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm 。

第三步:签出 Clang:

目录切换到 llvm/tools ,llvm是源代码根目录 

签出 svn co http://llvm.org/svn/llvm-project/cfe/trunk clang  

第四步: 签出Compiler-RT

目录切换到  llvm/projects ,llvm是源代码根目录 
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
第五步:编译 LLVM 和 Clang:

这一步与  http://clang.llvm.org/get_started.html 提示不一样,如果按照提示做,它会编译成 debug,快接近十G,那天编译完吓我一跳,怎么会这么大。但我一想不对啊,我在Ubuntu中直接安装过clang的包,不到100M。后来,在它的官网找到资料,原来它有三种发布方式。一种是Debug+Asseerts,第二种是 Release+Asserts,第三种是 Release,这一种占的容量最小,貌似clang编译速度也快不少,就这一种了.

于是 使用./configure --prefix=/mingw --enable-optimized --disable-assertions  注意前面 ./ 与linux下执行文件类似

命令解释,--prefix=/mingw ,我试过了,这玩意儿一定要放在Mingw 根目录下,其他地方,clang会提示找不到头文件,如果您有其他方法,希望能分享。 --enable-optimized --disable-assertions会编译成Release版,这个体积小。但我不知道Release+Asserts做什么用,有知道的朋友一定要知会一声,谢谢了。

然后使用make 进行编译,最后使用make install 安装 到Mingw 下。你也可用make install DESTDIR=/local(/local会在MinGW\msys) 安装到其他目录,备份它们(如果备份在/local下的,备份完后,请记得删除,以免影响clang运行),以后省得重新编译,重装时直接覆盖到Mingw目录下。

     最后一步:测试是否安装成功,一定要检测,不然辛苦都白费了

写个hello.c

#include <stdio.h>

int main()

{

printf("Hello Clang!!");

return 0;

}


使用 clang -v hello.c 如果没有错误,表明编译安装成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值