> ## Content Index
> Fetch the complete content index at: https://blog.hacking.pub/llms.txt
> Use this file to discover other available public pages before exploring further.

# 编译clang
- URL: https://blog.hacking.pub/2017/04/02/bian-yi-clang/
- Published: 2017-04-02T15:03:54.000Z
- Updated: 2017-04-02T15:04:48.000Z
- Author: chainhelen
- Tags: c语言, 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源码](http://releases.llvm.org/4.0.0/llvm-4.0.0.src.tar.xz?ref=blog.hacking.pub)，改名`llvm`，解压作为源码根目录  
下载[cfe-4.0.0.src.tar.xz源码](http://releases.llvm.org/4.0.0/cfe-4.0.0.src.tar.xz?ref=blog.hacking.pub)，改名`clang`，解压在上述子目录`llvm/tools`下  
下载[compiler-rt-4.0.0.src.tar.xz](http://releases.llvm.org/4.0.0/compiler-rt-4.0.0.src.tar.xz?ref=blog.hacking.pub)，改名`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快捷方式打开就可以了。