使用Mingw编译Clang
来源:互联网 发布:qq业务在线下单源码 编辑:程序博客网 时间:2024/05/20 07:14
最近,看几篇文章说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.exe,GCC 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.lzma,groff-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 如果没有错误,表明编译安装成功。
- 使用Mingw编译Clang
- mingw clang compiler-rt 编译错误
- MinGW-W64 编译 LLVM 与 Clang
- clang的编译和使用
- 使用clang进行交叉编译
- 使用clang编译OC程序
- 使用MinGW编译Lua
- 使用mingw编译wxPropertyGrid
- 使用 MinGW 编译 wxWidgets
- 使用MinGW编译FFmpeg
- 使用mingw编译wxWidgets
- 使用MinGW编译boost
- 使用MinGW编译Psycopg2
- 使用 minGW 编译 wxWidgets
- 使用MinGW编译Boost
- 使用mingw编译live555
- 使用MinGW编译wxWidgets
- 编译clang
- Classical 10 Examples for learning AWK
- 黑马程序员_TCP-客户端并发登录 判断用户名
- c#高级编程笔记1-net体系结构
- 计算机操作系统的发展
- 251. Knownledge is power. 知识就是力量
- 使用Mingw编译Clang
- java中文乱码
- 批量删除.svn的方法
- sqlite 数据库使用
- C语言编程技巧
- 开机自检出错 error0164 memory size decrease
- undefined reference to `__gnu_mcount_nc'
- ASCII码表
- 简要解释java为什么能跨平台!