下载地址:https://github.com/llvm/llvm-project
下载自己需要的llvm版本。我在Releases中找到8.0.1进行下载的。也可用通过git checkout到自己想要的版本上。
【注意】:不要通过https://llvm.org/官网下载release代码。
我下载解压后的文件夹路径为:E:ProjecetLLVMllvm-project-llvmorg-8.0.1
在该路径下创建一个build文件夹用于存放构建的文件。
-
Visual Studio :我用的是2017版。记得勾选ALT。我选择了这两个:
-
CMake:可以单独安装,也可以直接用哦visual studio 工具包里面的。
-
Ninja:可以单独安装,也可以直接用哦visual studio 工具包里面的。
-
Perl: Perl官网下载strawberry-perl,然后将bin目录添加到path。
可以通过powershell脚本安装。
首先开启脚本运行的权限:
-
打开powershll的管理员运行模式。点击开始-》再点击Windows终端(管理员)。如果没有终端,可以在Microsoft store中下载终端(Terminal)。
-
输入:
Set-ExecutionPolicy Unrestricted
3.编写脚本:
# filename: compilerllvm.ps1 # filepath: C:UsersAdministratorDesktop # 切换到build的目录 cd E:ProjecetLLVMllvm-project-llvmorg-8.0.1build # 切换到visual studio 的环境 D:VisualStudioVisualStudio2017VCAuxiliaryBuildvcvarsall.bat x64 #设置PATH,我这里使用visual studio自带的cmake和ninja $env:PATH="$env:PATH;D:VisualStudioVisualStudio2017VCToolsMSVC14.16.27023binHostx64x64;D:Windows Kits10bin10.0.17763.0x64;D:VisualStudioVisualStudio2017Common7IDECommonExtensionsMicrosoftCMakeCMakebin;D:VisualStudioVisualStudio2017Common7IDECommonExtensionsMicrosoftCMakeNinja" #设置LIB $env:LIB="$env:LIB;D:VisualStudioVisualStudio2017VCToolsMSVC14.16.27023libx64;D:Windows Kits10Lib10.0.17763.0ucrtx64;D:Windows Kits10Lib10.0.17763.0umx64" #设置INCLUDE $env:INCLUDE="$env:INCLUDE;D:Windows Kits10Include10.0.17763.0ucrt;D:Windows Kits10Include10.0.17763.0um;D:VisualStudioVisualStudio2017VCToolsMSVC14.16.27023include;D:Windows Kits10Include10.0.17763.0shared" # 编译命令 cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi;clang-tools-extra;libunwind;compiler-rt" -DLLVM_ENABLE_ASSERTIONS=ON ..llvm
【注意】我的visual studio 安装在D:VisualStudioVisualStudio2017,根据你的安装位置进行相应替换即可。
【注意】我的WIndows kit安装在D:Windows Kits,根据你的安装位置进行相应替换即可。
在终端执行:
C:UsersAdministratorDesktopcompilerllvm.ps1
如果没有报错的话,再执行:
ninja
之后可能会遇到一些问题。
可能遇到的问题- 杀毒软件可能导致编译异常:
我出现了这样的报错:mt : general error c101008d
解决:关闭电脑管家。 - 编码问题:
通过vscode打开编码异常的文件,然后通过UTF-8+BOM保存之后解决。
[1] Windows多种方案编译LLVM(ollvm)详细教程
[2] Windows 编译 LLVM 详细教程
[3] PowerShell入门指南(三)·一门新的编程语言
[4] Windows 10 环境变量:如何通过 CMD 和 PowerShell 写入环境变量
[5] VS编译错误:mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file
[6] 【PowerShell】命令行输出和添加系统环境变量



