ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Windows 下编译安装 pgvector:一份带报错自救的实操清单

Windows 下编译安装 pgvector:一份带报错自救的实操清单 Windows 下编译安装 pgvector一份带报错自救的实操清单【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvectorpgvector 是 PostgreSQL 的向量搜索扩展。照本文在 Windows 上做完你会得到一个本地编译安装好的 vector.dll能在自己的数据库里创建 vector 扩展、用 - 算子做 KNN 相似度查询同时也覆盖 Windows 编译阶段常见的 pgvector 安装报错PGROOT、postgres.h、LNK2019及对应修法。pgvector Windows 编译环境清单装什么、勾什么、装到哪 动手前先对照下表逐项打勾任何一项没勾后面都会以编译报错的形式找回来。项目安装 / 勾选装到哪 / 说明Visual Studio 2022社区版即可工作负载选“使用 C 的桌面开发”默认 C:\Program Files\Microsoft Visual Studio\2022\CommunityVS 个别组件“CMake tools for C” 与 “Windows SDK”在 VS Installer 的“单个组件”里勾选PostgreSQL 18安装时勾选 Development Files 组件记住路径默认为 C:\Program Files\PostgreSQL\18pgvector 源码用 git 克隆见下面第 1 步建议放到 %TEMP%\pgvector补充三点VS 2019 及更早版本对新 C 标准支持不完整直接用 2022。Development Files 是关键组件它提供 include\server\postgres.hpgvector 的 nmake 编译全程依赖它。编译时的命令行必须是“x64 Native Tools Command Prompt for VS 2022”如果你习惯用普通 cmd先执行call C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat它的作用就是把 cl.exe 等编译器注册进 PATH。pgvector 编译五步走clone、PGROOT、nmake 与 install以下命令都在上面说好的 VS 开发者命令提示符里执行。克隆源码cd %TEMP% git clone https://gitcode.com/GitHub_Trending/pg/pgvector.git cd pgvector设置 PGROOT指向 PostgreSQL 18 安装目录Makefile.win 第 24 行会检查它没设置会直接报错退出set PGROOTC:\Program Files\PostgreSQL\18nmake 编译规则全部来自 Makefile.win成功后当前目录出现 vector.dllnmake /F Makefile.win停止服务后安装安装本质是把产物拷贝进 %PGROOT%\lib 与 share\extension服务运行时文件会被占用net stop postgresql-x64-18 nmake /F Makefile.win install重新拉起服务net start postgresql-x64-18pgvector 安装报错自救PGROOT、postgres.h、LNK2019 怎么修⚠️ 报错时先认关键字按发生阶段在下表对号入座再执行“最简修复”。阶段症状报错关键字原因最简修复环境变量类PGROOT is not setPGROOT 未设置或指错目录重跑第 2 步用echo %PGROOT%核对路径头文件类fatal error C1083: 无法打开包括文件 postgres.hPostgreSQL 安装时漏勾 Development Files重装并勾选确认 %PGROOT%\include\server\postgres.h 存在编译器类cl 不是内部或外部命令在普通 cmd 里编译编译器未注册改用 x64 Native Tools 提示符或先 call vcvars64.bat链接类LNK2019: 无法解析的外部符号指向 postgres.lib链接库路径与 PGROOT 不匹配确认 %PGROOT%\lib\postgres.lib 存在Makefile.win 通过 $(LIBDIR) 取该路径安装权限类copy 阶段拒绝访问权限不足或服务占用了文件以管理员身份运行提示符先停服务再执行 install版本兼容类较老 tag 上出现 MSVC 编译警告/错误如 0.7.3旧版本对 MSVC 的兼容修复不完整换用新版发布 tag如当前发布的 0.8.6验证 pgvector 安装是否成功文件检查加 SQL 冒烟测试✅ 分两级验证先查文件再查功能。产物文件两处都应能列出dir %PGROOT%\lib\vector.dll dir %PGROOT%\share\extension\vector.control然后在 psql 里跑一段最小冒烟测试CREATE EXTENSION vector; CREATE TABLE test (id int, embedding vector(3)); INSERT INTO test VALUES (1, [1,2,3]); SELECT * FROM test ORDER BY embedding - [3,2,1] LIMIT 1;查询返回该行说明向量搜索扩展已正确加载- 距离算子可用。可选加速项AVX2、/O2 与并行构建按需首次可跳过⚡ 这一节只在你追求检索性能时才需要照做与否不影响编译成功。/O2 与 /fp:fast 已在 Makefile.win 的 PG_CFLAGS 里默认开启无需额外操作。CPU 支持 AVX2 时不必改任何文件用环境变量注入即可先set PG_CFLAGS/arch:AVX2再重新 nmake 编译老 CPU 请改用 /arch:SSE2否则程序可能无法启动。并行方面nmake 本身是单线程的PostgreSQL 的并行主要体现在运行期索引构建。想加快 HNSW 建索引调整 postgresql.conf 里的 max_parallel_maintenance_workers 即可。遇到问题去哪里表格覆盖不了的问题直接看项目官方文档和 Issue 区先搜有没有同类问题没有就新建一个附上 Windows 版本、PostgreSQL 版本和完整报错日志。【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表