本文内容
- 0.动机
- 1. 安装Visual Studio 2019
- 2 安装Python3
- 已安装Python
- 未安装Python
- 3. 配置Visual Studio
- 4.安装LLVM
- 获取源码
- 将LLVM切换到我们的目标版本
- 编译LLVM
0.动机
想着ubuntu用着别手,看看能不能在Windows中进行开发。于是就动手实践了下 Getting Started with the LLVM System using Microsoft Visual Studio。安装是安装成功了,但用了一段时间后,我先说结论:
并不推荐大家在Win系统里进行开发!!!!!还是乖乖使用LINUX系
- 最重要的就是LLVM官方并不是十分支持Win环境,Bug多,很多新特性还是在UNIX系系统中才支持。
- 最明显的感受就是开发时不适应。比如,大部分教程教你使用opt试用pass时,调用的是动态库
.so
文件。但在win里动态库文件不叫这个,诸如此类的问题多得很。给小白实践带来很多小麻烦(大佬请忽视我说的话)。
But,安装了就安装了吧,万一以后熟悉了还可以继续用。下面是安装步骤。
1. 安装Visual Studio 2019
首先,在 Visual Studio 安装程序的“工作负载”选项卡中,选择“ 使用 C++ 进行桌面开发”工作负载。
并更改安装位置到其他盘,不推荐直接安装在系统盘中。
我的位置配置方式,供大家参考:
目录结构
VisualStudio2019Pro
VisualStudio2019ProIDE
VisualStudio2019ProShared
两个子文件夹分别承载IDE
和共享组件、工具SDK等
点击位置中的‘更改’,配置为我们新建的文件夹
点击’单个组件’选项卡,勾选“Git for Windows”,点击安装。已经有Git的可以不用勾选。
等待它安装完毕。
会提醒你登录账户,但暂时不要登录,选以后再说
。
上菜单栏选项中,帮助-注册,点击使用产品密钥,输入神秘代码NYWVH-HT4XC-R2WYW-9Y3CM-X4V3Y
,点击应用,即可完成。
2 安装Python3
已安装Python
可以使用以下命令来查看Python的安装路径
- 打开命令提示符面板: windows键+R,输入“cmd”,打开命令行。
- 输入以下代码查看安装路径
import sys
sys.path
这里显示我已经安装python3.9。
未安装Python
进入官网Python官网,选Download,安装最新的吧。
我以python-3.12.3为例,重新安装Python。
在安装选项中,勾选Add python.exe to PATH
,这将允许为所有用户安装 psutil 进行回归测试,并使 Python 可从命令行使用。.上面那个也勾下,以免安装出问题。然后点击Customize installation
等待安装完毕
3. 配置Visual Studio
找到Developer Command Prompt for VS 2019
并以管理员身份运行
提前在你想安装LLVM的盘下创建空文件夹。但不要安装到包含空格的路径(例如c:\Documents and Settings\...
),因为会失败。我这里以E:\llvm
为例
输入命令
e:
cd /llvm
接着输入如下命令,注册 Microsoft 调试接口访问 (DIA) DLL。LLVM PDB 测试和LLDB 开发需要 DIA 库 。
regsvr32 "%VSINSTALLDIR%\DIA SDK\bin\msdia140.dll"
regsvr32 "%VSINSTALLDIR%\DIA SDK\bin\amd64\msdia140.dll"
键入每个命令一般都会弹出提示,点击确认即可。
4.安装LLVM
获取源码
退出Developer Command Prompt for VS 2019
并进入cmd命令行
键入以下命令安装psutil
:
pip install psutil
键入以下命令获取LLVM源码:
git clone https://github.com/llvm/llvm-project.git llvm
将LLVM切换到我们的目标版本
源码大小约为3GB。并且git方式下载的一般为最新的llvm版本。截止本文发出时,最新的版本已经到了LLVM 19。新版本有新特性,但并不代表一定好,而且新版本可能文档方面的资料少,这并不利于我们的开发工作。但我们可以使用git将其切换至指定版本。
进入lllvm-project
目录,鼠标右键Open git bash here
键入
git tag
查看版本标签。例如我想切换的LLVM13的标签为llvmorg-13.0.1
键入命令,然后等待切换完毕
git checkout llvmorg-13.0.1
编译LLVM
编译LLVM需要使用到Cmake,而VS自带了cmake不需要我们安装。所以,我们要做的就是使用VS打开刚才切换完毕的llvm-project
源码目录中的llvm子目录。
键入命令
cmake -B build -DLLVM_ENABLE_PROJECTS=clang -DLLVM_TARGETS_TO_BUILD=X86 -Thost=x64
-B build
: 这个选项告诉CMake在指定的目录中生成构建系统文件。在这里,build是构建目录的路径。如果该目录不存在,CMake会创建它。-DLLVM_ENABLE_PROJECTS=clang
: 这个选项,告诉CMake要构建LLVM项目的哪些部分。在这里,只构建了Clang,即C/C++编译器。-LLVM_TARGETS_TO_BUILD=X86
:告诉CMake要为哪些目标体系结构构建LLVM。在这里,只构建了X86体系结构的支持。-Thost=x64
: 默认情况下,CMake 生成的 Visual Studio 项目文件使用 32 位工具集。如果在 64 位版本的 Windows 上进行开发并希望使用 64 位工具集,需要传递该标志。这要求 CMake 3.8.0 或更高版本。
键入命令后开始构建:
构建完生成了一些配置信息以及一个build目录。在该目录下找到LLVM.sln并双击~~(666)~~ 。
然后在解决方案中找到ALL_BUILD
,进行构建.(其实就是安装LLVM)。
构建过程大概需要1-2小时。然后…准备好听电脑风扇狂转。
大家可以自己写个Pass,做一下…就会发现很烦…
结束!