在Wnidwos平台源码编译LLVM

下载源码

下载地址:https://github.com/llvm/llvm-project
下载自己需要的llvm版本。我在Releases中找到8.0.1进行下载的。也可用通过git checkout到自己想要的版本上。
【注意】:不要通过https://llvm.org/官网下载release代码。
我下载解压后的文件夹路径为:E:\Projecet\LLVM\llvm-project-llvmorg-8.0.1
在该路径下创建一个build文件夹用于存放构建的文件。

所需工具

  1. Visual Studio :我用的是2017版。记得勾选ALT。我选择了这两个:
    在这里插入图片描述

  2. CMake:可以单独安装,也可以直接用哦visual studio 工具包里面的。

  3. Ninja:可以单独安装,也可以直接用哦visual studio 工具包里面的。

  4. Perl: Perl官网下载strawberry-perl,然后将bin目录添加到path。

配置环境

可以通过powershell脚本安装。
首先开启脚本运行的权限:

  1. 打开powershll的管理员运行模式。点击开始-》再点击Windows终端(管理员)。如果没有终端,可以在Microsoft store中下载终端(Terminal)。
    在这里插入图片描述

  2. 输入:

Set-ExecutionPolicy Unrestricted

3.编写脚本:

# filename: compilerllvm.ps1
# filepath: C:\Users\Administrator\Desktop
# 切换到build的目录
cd E:\Projecet\LLVM\llvm-project-llvmorg-8.0.1\build\
# 切换到visual studio 的环境
D:\VisualStudio\VisualStudio2017\VC\Auxiliary\Build\vcvarsall.bat x64
#设置PATH,我这里使用visual studio自带的cmake和ninja
$env:PATH="$env:PATH;D:\VisualStudio\VisualStudio2017\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64;D:\Windows Kits\10\bin\10.0.17763.0\x64;D:\VisualStudio\VisualStudio2017\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;D:\VisualStudio\VisualStudio2017\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja"
#设置LIB
$env:LIB="$env:LIB;D:\VisualStudio\VisualStudio2017\VC\Tools\MSVC\14.16.27023\lib\x64;D:\Windows Kits\10\Lib\10.0.17763.0\ucrt\x64;D:\Windows Kits\10\Lib\10.0.17763.0\um\x64"
#设置INCLUDE
$env:INCLUDE="$env:INCLUDE;D:\Windows Kits\10\Include\10.0.17763.0\ucrt;D:\Windows Kits\10\Include\10.0.17763.0\um;D:\VisualStudio\VisualStudio2017\VC\Tools\MSVC\14.16.27023\include;D:\Windows Kits\10\Include\10.0.17763.0\shared"
# 编译命令
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:\VisualStudio\VisualStudio2017,根据你的安装位置进行相应替换即可。
【注意】我的WIndows kit安装在D:\Windows Kits,根据你的安装位置进行相应替换即可。

编译

在终端执行:

C:\Users\Administrator\Desktop\compilerllvm.ps1

如果没有报错的话,再执行:

ninja

之后可能会遇到一些问题。

可能遇到的问题

  1. 杀毒软件可能导致编译异常:
    我出现了这样的报错:mt : general error c101008d
    解决:关闭电脑管家。
  2. 编码问题:
    通过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】命令行输出和添加系统环境变量

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值