新版llama.cpp在win7系统的移植与编译

本文介绍新版llama.cpp在win7的编译移植方法。

背景

自2025.9月左右,llama.cpp主线对其cpp-httplib依赖库进行了版本升级,新版不再支持win8以下的系统。笔者经过多番尝试,将新版llama.cpp成功编译到win7,新版llama.cpp可支持qwen3系列模型。

编译环境

系统:WIN7 SP1 旗舰版

编译工具:w64devkit 2.1.0

CMake

可参考此文

注意:源码路径应无中文

源码修改及编译方法

需对llama.cpp源码做以下修改:

(1)clone 版本库,checkout到较新版本(建议晚于2025.10),本文使用b7562 版本。

(2)搜索版本号变量WIN32_WINNT,将相关定义修改为WIN7版本号 0x0601。

(3)搜索GGML_WIN_VER变量的定义(可能没有),修改为WIN7版本号 0x0601

(4)对照老的httplib.h,将httplib.cpp文件中对CreateFile2、CreateFileMappingFromApp、MapViewOfFileFromApp三个函数的调用改为兼容WIN7的老API,修改后函数调用如下:

bash 复制代码
  hFile_ = ::CreateFileW(wpath.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL,
                         OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  hMapping_ = ::CreateFileMappingW(hFile_, NULL, PAGE_READONLY, 0, 0, NULL);
  addr_ = ::MapViewOfFile(hMapping_, FILE_MAP_READ, 0, 0, 0);

(5)执行cmake

cmake 复制代码
cmake . -G "MinGW Makefiles" -DLLAMA_CURL=OFF -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc -DLLAMA_BUILD_TESTS=OFF 

(6)编译

单线程编译,避免冲突报错

bash 复制代码
cmake --build.--config Release -j 1

参考

在Windows 7操作系统,基于llama.cpp本地化部署 deepseek-r1模型的方法 2025-02-08

相关推荐
视图猿人2 天前
使用LLama.cpp本地部署大模型
llama.cpp
熊猫钓鱼>_>2 天前
Makefile应用场景实践日志:构建高效C/C++项目工作流
c语言·c++·bug·mfc·makefile·编译·kmp
seasonsyy3 天前
创建虚拟机并安装Win7系统
vmware·虚拟机·win7
xixixi777778 天前
大模型的运行离不开芯片和搭载在它上面的计算框架
机器学习·大模型·编程·编译·芯片·计算框架·技术框架
love530love8 天前
Windows 11 下再次成功本地编译 Flash-Attention 2.8.3 并生成自定义 Wheel(RTX 3090 sm_86 专属版)
人工智能·windows·笔记·编译·flash_attn·flash-attn·flash-attention
LYFlied20 天前
TS-Loader 源码解析与自定义 Webpack Loader 开发指南
前端·webpack·node.js·编译·打包
利白21 天前
QCAD v3.28.1.3源码编译,使用VS2019+Qt5.15.2环境
编译·vs2019·qcad
charlie1145141911 个月前
深入理解CC++的编译与链接技术8:Windows和Linux是如何搜寻动态库的?
c语言·c++·动态库·编译·编译技术
skywalk81631 个月前
GLM-edge-1.5B-chat 一个特别的cpu可以推理的小型llm模型
人工智能·ollama·llama.cpp