Windows上构建LLVM 17与Clang

发布时间 2023-10-28 01:38:00作者: 汀洲杜若

介绍:本文记录了一次构建LLVM及Clang的过程。

条件:Windows10 22H2,Visual Studio 2022社区版(C++桌面应用组件),LLVM-17.0.3源代码,CMake-3.26。

源码组织:LLVM源码各下各的。我用不上别的,就不克隆整个项目了。这里有llvm、clang、clang-tools-extra和cmake。各目录并列摆放,将目录重新命名。

要有Cmake包,国内镜像站点的LLVM目录下有。上图右是它的内容。

在llvm目录下新建build目录并在此执行CMake构建命令(最好在VS x64 Command Prompt里面)。下面是CMake构建选项。为了节省时间我就不构建文档和测试目标了。启用Exception Handler(即LLVM_ENABLE_EH)的话必须要加上“LLVM_ENABLE_RTTI”。

cmake ..\llvm -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=D:\LLVM17 -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_EH=ON -DLLVM_BUILD_DOCS=OFF -DLLVM_BUILD_EXAMPLES=ON

要注意的事情:

一)别用垃圾电脑,内存最好16GB,存储空间留个二三十个GB。笔记本插电,并设置电源选项为“永不睡眠”。作者深受其害(要不是我偶然修好了笔记本,我tm早给它卖二手了)。

二)源码里面有“936代码页”之外的符号,VS2022的输出窗口会显示一堆警告,不用管。构建过程不受影响。

三)但若因编码问题出现了错误(ERROR),那就依次点击【扩展】【自定义菜单】【命令选项卡】【单选项菜单栏】【组合框里选“文件”】【右下“添加命令”】【高级保存选项】【关闭】。然后从文件菜单栏里点“高级保存选项”,存成“带有BOM的UTF-8”。用别的转换编码也可以,但是别把编码转来转去最后导致源码的信息丢失了!作者深受其害。

四)你看到的其它“构建失败”,很有可能是二和三引起的。

cmake正确执行完毕,打开LLVM.sln。千万要看清楚Visual Studio上面写的是“Release”还是“Debug”,别傻乎乎地直接构建项目“ALL BUILD”。有时候CMake选项是Release,但打开VS的时候它是“Debug”。作者深受其害。

五)一旦开始构建,它将很难被停止。虽然VS上有“取消生成”这各选项,但一般情况你点不了。因为CPU太忙以致于无法响应用户操作(也许鼠标还能动,但是别乱点)。

--------我是分割线----------

惠普主板密码忘了,买个FLASH编程器,去官网下个BIOS,直接解压出来,方法就有了(刷完开机前记得按住Win+B)。型号在固件内容的$BID后面,搜一下BIOS二进制的ASCII码区就有了。

本来想换新电脑的,网上看了三天不知道选哪个。今天结果抱着试一试的态度,居然又给它救活了?!5年了,这台电脑到底要坚持到什么时候。