编译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快捷方式打开就可以了。

阅读更多

CPU、ANE、GPU 连接同一块统一内存的简约概念插画

用一个矩阵乘法看懂 ANE、GPU 与统一内存

最近看 Kapitsa 的 ANE 实现时,我想先弄明白一个很小的问题:如果只计算两个矩阵相乘,数据究竟怎样进入 Apple Neural Engine,答案又从哪里回来? 于是把例子收进一个 main.mm 文件:输入是两个 2×2 矩阵,计算图内嵌在文件里,乘法交给 ANE,最后打印结果。本文先把硬件和内存关系画清楚,再顺着这个例子读代码。 1. ANE 是什么,它和 GPU 有什么区别? ANE(Apple Neural Engine)是苹果的神经网络加速器,可以归入 NPU。它与 GPU 是并列的计算单元,不是 GPU 内部的一种核心。 它们都能做大量乘加运算,但面向的软件接口和硬件取舍不同: 计算单元 在这里怎样理解 常见工作

By chainhelen