编译clang

环境

windows10

vs2015update3 community版

cmake3.7.2

Python 3.5.3

GnuWin32 tools

llvm4.0源码

安装过程

首先安装vs2015updaate3 community版,双击iso镜像文件,win10系统自动挂载,在虚拟镜像里面双击vs_community.exe,选择默认安装即可

python、cmake安装过程比较简单,但是确保安装完成后都在环境变量PATH里面

唯一不一样的地方是我并没有安装GnuWin32,我装了codeblock(默认有mingw),然后把lib,include,bin目录都加在环境变量PATH里面,接在再添加了环境变量include,lib

下载llvm-4.0.0.src.tar.xz源码,改名llvm,解压作为源码根目录

下载cfe-4.0.0.src.tar.xz源码,改名clang,解压在上述子目录llvm/tools

下载compiler-rt-4.0.0.src.tar.xz,改名compiler-rt,解压在llvm/project

llvm同级目录,新建一个新的目录build,cmd进入build目录,键入如下面命令

cmake -G "Visual Studio 14" ..\llvm  

然后就能生成一堆项目文件,其中llvm.sln,就是vs2015项目的入口,打开编译2-3个小时(依照电脑性能)即可

遇到的问题

1.键入cmake,报错找不到C系语言的编译器

在开始菜单,输入"msb"提示,打开"VS2015 MSBuild命令行工具",在该终端下,进入build进行键入

2.vs2015编译的时候,报错fatal error LNK1104: 无法打开文件“kernel32.lib”

在安装vs2015的路径下 Microsoft Visual Studio 14.0\VC\lib 能找到该文件,然后尝试了把该lib路径加到环境变量里仍无果,最终选择了卸载了vs2015,并且在"更改或删除程序"把相应含"c++"关键字的微软程序都卸载了。此后再进行重新安装。

3.编译完成,报找不到ALL_BUILD

没有关系,这个不算错,找一个入口,比如Clang tests里面的LexTests,右键设置为启动项目即可

4.断点无效

仔细看整个IDE的输出,是不是显示着无法加载符号表。这个是我遇到的最大的坑,就是双击llvm.sln的时候默认打开竟然不是VS2015的IDE,而是VS2015的blend版本,这个是设计师模式,编译完都是RESEALSE版本,没有debug信息的。每次把llvm.sln拖到桌面上的vs2015快捷方式打开就可以了。