在Windows下源码编译LLVM(MingW)

 

 

前言——由于最近工作项目需要,需要在windows下基于mingw(即使用gcc编译器,非vc的编译器)编译LLVM,踩坑无数,仅此一记。

 

环境:

 

win10 64位专业版

 

准备:

 

试过很多种编译方式,最终发现还是msys2比较靠谱,即在windows平台下类linux开发环境的工具。

 

 

1.到msys2官网下载64位版本,一路下一步安装。

打开它的shell窗口,即C:\msys64\msys2_shell.cmd

 

以防意外可以先更新一下,依此执行

 

pacman -Sy

 

pacman -Su

 

2.安装编译工具链

 

pacman -S mingw-w64-x86_64-toolchain

 

 

这里我只装了64位机器的编译链(可能会根据实际情况安装pacman -S base-devel,这个包含了大部分的基本包)

如果这里太慢,自行百度msys2换国内更新源。

 

3.LLVM官网下载相应版本源码,这里说两个版本3.4和比较新的6.0版。

 

我在e盘中解压llvm-3.4.src.tar.gz了这个文件。(6.0版类似)

 

编译3.4版本

 

1.打开C:\msys64\mingw64.exe,虽然和刚刚的shell窗口基本类似,但是最好直接打开这个,原因是这个shell窗口本身设置好了对应的gcc等环境变量。

 

cd /e/llvm-3.4

 

mkdir build

 

cd build

 

 

进入了编译目录

echo'ac_cv_have_decl_strerror_s=${ac_cv_have_decl_strerror_s=no}' > config.cache

 

../configure -C --prefix=/e/llvm-3.4.mingw64/build--host= x86_64-w64-mingw32--enable-optimized --disable-assertions --disable-pthreads --enable-targets=x86_64--enable-bindings=none --disable-libffi --with-c-include-dirs=/usr/x86_64-w64-mingw32--with-gcc-toolchain=/usr/x86_64-w64-mingw32 --with-default-sysroot=/usr/x86_64-w64-mingw32

 

 

等待一会生成相应的makefile。

 

 

make -j8

 

大概5分钟后编译完成

 

 

 

编译6.0版本

 

 

 

1.和编译3.4版类似进入cd到源码的build文件夹后,新建一个build.sh脚本,拷贝如下内容

 

LLVMSRC="/e/llvm-6.0.0.mingw"
LLVMINS="/e/llvm-6.0.0.mingw/build"
 
cmake
    -G"MinGW Makefiles" \
   -DCMAKE_INSTALL_PREFIX="$LLVMINS" \
   -DCMAKE_BUILD_TYPE="Release" \
   -DLLVM_TARGETS_TO_BUILD="X86_64" \
   -DLLVM_INCLUDE_TESTS=OFF \
   -DLLVM_ENABLE_CXX1Y=ON \
   -DLLVM_ENABLE_ASSERTIONS=ON \
   -DSPHINX_OUTPUT_HTML=OFF \
   -DSPHINX_OUTPUT_MAN=OFF \
   "$LLVMSRC"
 
cmake--build .
cmake--build .  --target install

 

 

在文件管理器中可以看到build下生成了release文件夹

 

 

将Release下的lib中的所有生成的库全选复制到build下的lib文件夹中

 

 

再将源码文件夹中的include整个文件夹复制到build文件夹中,提示是否替换选择全部。

 

 

 

此时基于MingW的LLVM3.4的版本全部编译成功,如果想在msys2中使用它,导入环境变量中即可。

 

export LLVM=/e/llvm-3.4/build

或者写入bashrc永久生效。其他环境类似。

 

 

 

 

### 如何在 Windows编译和安装 LLVM Clang #### 准备工作 对于希望在 Windows 平台上从源码构建并安装 LLVM 和 Clang 的开发者来说,准备工作至关重要。确保已安装 Visual Studio 或 MinGW 工具链来提供必要的编译工具支持[^1]。 #### 下载源代码 通过 Git 或者直接下载压缩包的方式获取最新版本的 LLVM 及 Clang 源代码文件。官方推荐使用 Git 来克隆仓库以便于后续更新维护[^2]。 #### 创建构建目录 进入解压后的 `llvm-project` 文件夹,在此根路径下创建一个新的名为 `build` 的子文件夹用于存放生成的目标文件和其他中间产物: ```bash cd llvm-project mkdir build ``` #### 配置 CMake 构建选项 切换到新建立的 `build` 目录内执行 CMake 命令行指令完成项目初始化设置。针对 Windows 用户建议采用 Ninja 作为生成器,并指定 MSVC 编译器为默认C/C++处理器;同时关闭测试套件以减少不必要的依赖项加载时间: ```cmake cmake -G "Ninja" ^ -DLLVM_ENABLE_PROJECTS="clang" ^ -DLLVM_TARGETS_TO_BUILD="X86" ^ -DCMAKE_BUILD_TYPE=Release ^ -DLLVM_INCLUDE_TESTS=OFF .. ``` 注意:上述命令适用于命令提示符 (cmd),如果是 PowerShell,则需将反斜杠替换为回车键继续输入下一参数行[^3]。 #### 执行编译流程 利用多线程加速整个编译进程,假设计算机拥有四个逻辑核心则可以运行如下命令加快速度: ```powershell ninja -j4 ``` 等待所有模块成功链接完毕之后即可获得可执行程序及其库文件集合。 #### 安装至系统环境变量中 最后一步就是把刚刚制作好的二进制成果复制到合适的位置供全局调用。通常情况下会将其放置于 `%ProgramFiles%\LLVM\bin` 路径之下,并相应调整 PATH 环境变量使得可以在任意位置启动这些工具集。 ```batchfile setx /M PATH "%PATH%;%ProgramFiles%\LLVM\bin" ``` 以上就是在 Windows 上搭建基于 LLVM/Clang 开发平台的方法概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值