使用Visual Studio 2015编译LLVM/Clang源码
一、下载LLVM/Clang源码
从http://releases.llvm.org/download.html下载LLVM 8.0的源码: LLVM source code Clang source code compiler-rt source code 下载完成后,把llvm-8.0.0.src.tar.xz、cfe-8.0.0.src.tar.xz、compiler-rt-8.0.0.src.tar.xz三个包分别解压出来。
- 将cfe-8.0.0.src.tar.xz解压出来的目录更名为clang,放在llvm-8.0.0.src\tools目录下
- 将compiler-rt-8.0.0.src.tar.xz解压出来的目录更名为compiler-rt,放在llvm-8.0.0.src\projects
- 在llvm-8.0.0.src目录下创建一个build目录,专门用于存放编译生成的文件
- 在llvm-8.0.0.src/build目录下再创建一个install目录,作为安装目录
二、使用CMake生成VS工程
1.选择源文件所在路径和编译生成的目标路径
2.点击Add Entry按钮增加如下属性
这里可以填写的有效目标为:host, X86, Sparc, PowerPC, ARM, AArch64, Mips, Hexagon, Xcore, MSP430, NVPTX, SystemZ, AMDGPU, BPF, CppBackend或者 all,如果有多个目标使用英文分号隔开。
由于是使用的VS2015进行编译,源码中使用到的有一些C++特性不被支持,所以需要设置LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN属性为true,否则会报错;VS2017及以上版本不需要设置。
3.点击Configure进行编译器配置
如果需要生成x64平台配置,则需要在设置toolset选项时添加host=x64,否则会报如下警告:
CMake Warning at CMakeLists.txt:33 (message): Visual Studio generators use the x86 host compiler by default, even for 64-bit targets. This can result in linker instability and out of memory errors. To use the 64-bit host compiler, pass -Thost=x64 on the CMake command line.
点了Finish按钮后就开始Configure了,下图红色部分就是报了一个LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN的警告,因为前面已经设置了此属性为true,否则就是直接报错退出了。
Configure完成后就可以点击Generate进行生成了,生成完成后点击Open Project打开生成的VS解决方案,项目数量比较多,有450多个项目,编译是一个漫长的过程,需要编译几个小时,可以不用全部编译,可以选择clang项目进行编译,VS会自动编译依赖项目。BTW:磁盘空间准备大一点至少留足15个G。
祝好!
- 原文作者:Witton
- 原文链接:https://wittonbell.github.io/posts/2019/2019-05-12-使用Visual-Studio-2015编译LLVM_Clang源码/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。