本地编译 llama.cpp 的过程
前言
前段时间知道了 AstraBot 智能机器人项目,想着自己部署一个下来玩玩。但是吧又不太想花钱。刚好手里电脑配置貌似还不错,不如本地配置个大模型来玩玩,于是就有了这篇文章。编译过程那是相当的坎坷,从下载 Visual Studio 到下载 CUDA took kit 就没有一步是顺的。博主的显卡是去年 5 月份安装的显卡驱动,CUDA 版本是 12.8 ,而 Visual Studio 官网下载的是 2026 版本,然后下载 CUDA tool kits 12.8 版本的时候,因为 Visual Studio 版本太新了导致相关的工具下不下来,找这个问题找了半天(现实时间)才找出来。然后不得已只能下载了 CUDA tool kits 13.3 版本,结果还是不行,因为显卡驱动的 CUDA 版本太低了,不能用 CUDA tool kits 13.3 版本,直接无法识别。最后的最后才直接把去年刚装电脑时的驱动卸载了重新下了个新的驱动,终于是成功编译出来了。真的是太艰难了。
注: 本片博客是记录编译过程,若是想直接获得编译结果运行可以前往 llama.cpp 仓库Release 选项直接下载编译产物运行
前置驱动要求
若是使用 Visual Studio 2026 确保显卡驱动的 CUDA 版本大于 13.0,而若是 Visual Studio 2022 的话则无所谓。可以运行
nvidia-smi命令查看驱动的 CUDA 版本。
编译环境准备
需要 Visual Studio 2022/2026 和 CUDA took kits
下载 Visual Studio 2026 版本
下载安装
有 Visual Studio 2022 的可以跳过这一步
- 进入Visual Studio 官网下载(默认是 Visual Studio 2026 版本)
- 安装过程中选择”使用C++的桌面开发”选项

- 修改安装路径(可选)
- 添加 Cmake 环境变量
- Cmake 默认路径为 Visual Studio 安装目录下的
\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin
- Cmake 默认路径为 Visual Studio 安装目录下的
检测环境
检查 Cmake
1 | cmake --version |
检查编译器
1 | gcc --version |
若是出现版本号则配置完成
下载 CUDA took kits 工具集
下载安装
- 进入 NVIDIA 官网下载 CUDA took kits 工具集(CUDA 13.3版本)
- 按照自己的电脑选择相应的选项。最后的 Install type 可以选择 .exe(Network)
下载 CUDA took kits 时会自动添加环境变量
检测环境
1 | nvcc --version |
若是出现版本号则配置完成
拉取 llama.cpp 项目
电脑有 git 版本控制器的话运行一下命令拉取
1 | git clone https://github.com/ggml-org/llama.cpp.git |
若是没有 git 版本控制器则前往 llama.cpp 仓库下载压缩包并解压
编译 llama.cpp 获取可执行文件
配置 llama.cpp 的编译环境
进入llama.cpp文件夹内,创建 build 文件夹并进入,右键打开终端,输入以下命令进行构建
1 | cmake .. -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE=Release -DGGML_NATIVE=ON |
进行编译
1 | cmake --build .. --config Release -j 8 |
至于编译成不成功…只能说遇到问题再想解决办法…
使用 llama.cpp 运行大模型
- 首先我们需要获取一个大模型,这里给出一个 Qwen3.6 大模型的链接,模型大小最好小于本机 GPU 显存
- 在
\build\bin\Release\运行以下命令启动大模型
1 | .\llama-server -m G:\你的模型路径.gguf -ngl 30 -c 8192 -fa on -t 8 -b 512 -ub 512 --cache-type-k q8_0 --cache-type-v q8_0 --host 0.0.0.0 --port 8080 --jinja |
- 进入浏览器,输入
http://localhost:8080/即可访问 llama.cpp 自带的 Web UI 界面,就可以与大模型进行对话了。
PS: 启动参数什么的请去问 AI…太多了,默认启动的话其实只需要
-m-ngl(有GPU时填写)-c就行了。
结语
那么本篇文章到这里就结束了,没有记录的太详细,因为是完成后回忆着写的。问我为什么不边做边写?因为编译的时候老是不成功,头老大了,哪有时间写博客?(;′⌒`)。在部署完大模型后,咱的初衷是要部署个 AstraBot 智能助手项目,所以下篇文章不出意外就是 AstraBot 开源项目的部署教程了。如果没有见到我更新,那么就是我认为太简单了(得益于 AstraBot 项目本身十分优秀,部署和启动非常简单,Web UI 也很好看)…(゜▽゜)☆
至于为什么不用 ollama 运行,主要是因为听说 llama.cpp 性能比 ollama 要好一些,而且早期 ollama 就是基于 llama.cpp 开发的。本来本地电脑资源就很有限了,所以想贪那一点性能,才选择了自己编译 llama.cpp…