新闻详情

新闻详情

首页 / 资讯中心 / 详情

pgvector Windows 编译报错:C4141 警告 + C2196 错误,完整排错一步到位

发布时间:2026/9/6 21:49:56来源:尧图网络
pgvector Windows 编译报错:C4141 警告 + C2196 错误,完整排错一步到位
pgvector Windows 编译报错C4141 警告 C2196 错误完整排错一步到位【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector卡住现场nmake 倒在 Postgres 官方头文件上凌晨两点Windows 11Postgres 1664 位VS2022pgvector 0.8.6。我照着说明执行nmake /F Makefile.win先冒出两条 C4141 警告接着 pgvector Windows 编译直接中断src\bitvec.c(43): warning C4141: dllexport: used more than once src\hnsw.c(190): warning C4141: dllexport: used more than once C:\Program Files\PostgreSQL\16\include\server\access/tupmacs.h(65): error C2196: case value 4 already used先怀疑 pgvector 代码再怀疑 Postgres 装坏了折腾了半天最后定位到是一行环境问题。⚡ 快速结论5 步修好 Windows 编译只要答案的看这里打开 “x64 Native Tools Command Prompt for VS 2022”管理员别用 x86 或 ARM 终端编译前把 PGROOT 指到 Postgres 安装目录set PGROOTC:\Program Files\PostgreSQL\16获取源码git clone --branch v0.8.6 https://gitcode.com/GitHub_Trending/pg/pgvector cd pgvector清掉旧产物再编译、安装nmake /F Makefile.win clean nmake /F Makefile.win nmake /F Makefile.win install日志里还有 C4141 就忽略不影响vector.dll生成报 C2196 说明你开的是 32 位终端回第 1 步。 排查路径倒推 C2196 的元凶步骤现象结论怀疑残留构建产物nmake /F Makefile.win clean后重编报错不变排除旧 obj 干扰读警告内容C4141 只出现在 bitvec.c / hnsw.c编译没停警告不阻断构建真问题在别处聚焦错误行error C2196出错位置在 Postgres 官方头文件 access/tupmacs.h不是 pgvector 代码的错源码方向排除怀疑 PG 安装损坏重新装 16.4 x64 验证头文件正常排除 Postgres 本身问题检查终端位宽发现我一直开的是 “x86 Native Tools Command Prompt”32 位工具链配 64 位头文件坑锁定换 x64 Native Toolsclean 后重编编译通过只剩两条 C4141一步到位关键线索在第三行tupmacs.h 是 Postgres 自带的文件真要是 pgvector 自己的问题报错位置应该在src/下的 .c 文件里。 底层机制32 位编译器为什么会报 tupmacs.h 错误tupmacs.h 是 PostgreSQL 16 生成的头文件定义表元组tuple的布局宏。它内部的switch按属性对齐方式分派哪些分支被编译进来取决于当前编译器的指针宽度。64 位系统上 Datum 占 8 字节SIZEOF_DATUM8x64 工具链和头文件天然自洽。换成 x86 工具链后条件编译走错分支同一个值在 switch 里出现两次MSVC 直接报 C2196。报错位置在官方头文件锅却在终端Postgres 装的是 64 位头文件是 64 位的只有编译器是 32 位。C4141 是另一码事。Windows 下 PGDLLEXPORT 展开为__declspec(dllexport)pgvector 靠它导出扩展函数见 src/vector.h、src/hnsw.h。同一函数声明和定义都带了导出属性MSVC 就提示 used more than once。纯警告不阻断构建。 避坑清单编译前过一遍打开 “x64 Native Tools Command Prompt for VS”不是 x86/ARM——C2196 的唯一前置条件编译前执行set PGROOTC:\Program Files\PostgreSQL\16指错会报Cannot open include file: postgres.h每次重编前跑一次nmake /F Makefile.win clean防止 32 位/64 位 obj 混用Postgres 17.0–17.2 链接报unresolved external symbol float_to_shortest_decimal_bufn升到 17.3install 阶段用管理员权限报Access is denied就是权限问题装完跑CREATE EXTENSION vector;验证\dx vector看到 0.8.6 才算闭环❓ 常见疑问C4141 警告直接无视行不行行。它不阻断编译只要最后 vector.dll 正常生成就没影响。来源是 PGDLLEXPORT 重复标注不是环境问题不用处理。换 x64 终端后源码要重新 clone 吗不用。原地 clean 再编即可。唯一注意如果之前 32 位编译留了 obj 文件必须先nmake /F Makefile.win clean否则旧产物会污染链接。换成 WSL2 里编译行不行可以但那是 Linux 环境走普通 make 流程用不到 Makefile.win 和 nmake。不过 WSL 里编译出的扩展只能给 WSL 里的 Postgres 用别混着装到 Windows 侧的 64 位 Postgres 上。【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Buzz离线语音转文字:三步上手本地转录工具 2026/9/6 22:35:04

Buzz离线语音转文字:三步上手本地转录工具

Buzz离线语音转文字:三步上手本地转录工具 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Trending/buz/buzz 你是否遇到过这样的场景…

阅读更多 →
CANoe软件仿真SOME/IP:服务发现、方法调用与事件订阅实战 2026/9/6 22:35:04

CANoe软件仿真SOME/IP:服务发现、方法调用与事件订阅实战

简介:面向车载以太网与汽车电子研发测试工程师的实战技术文档,内容围绕 SOME/IP 协议在 CANoe 软件中的仿真应用展开,针对服务发现、时戳、动态链接库调用等常见疑问给出解答,并系统理清面向服务通信与 CAN 面向信号通信的差异。资…

阅读更多 →
业务逻辑架构图怎么画?从逻辑拆解到PPT交付的完整指南 2026/9/6 22:35:04

业务逻辑架构图怎么画?从逻辑拆解到PPT交付的完整指南

简介:面向企业管理、人力资源与战略规划场景的高级业务逻辑结构图架构图PPT模板,可在述职汇报、考核方案讲解、企业历程展示等场合直接使用。模板围绕员工考核(方式、流程、内容、等级、表现)、2015—2030发展历程、发展里程碑和大…

阅读更多 →
AEC-Q200 Rev-E改版解读:被动元器件车规认证要点与常见失效分析 2026/9/6 22:35:04

AEC-Q200 Rev-E改版解读:被动元器件车规认证要点与常见失效分析

简介:AEC Q200-Rev E 2023(2023年3月20日发布)是汽车电子理事会组件技术委员会推出的被动元件应力测试资格标准,面向汽车电子行业的元件供应商、制造商与质量认证人员,用于规范电阻、电容、电感等被动元件在极端温度、…

阅读更多 →
手把手搞定 Windows 驱动级性能优化:4 款工具终结掉帧与卡顿 2026/9/6 22:35:04

手把手搞定 Windows 驱动级性能优化:4 款工具终结掉帧与卡顿

手把手搞定 Windows 驱动级性能优化:4 款工具终结掉帧与卡顿 【免费下载链接】Atlas 🚀 An open and lightweight modification to Windows, designed to optimize performance, privacy and usability. 项目地址: https://gitcode.com/GitHub_Trendin…

阅读更多 →
Gradio 交互式数据看板实战:用 gr.Blocks、CheckboxGroup 与 gr.Plot 构建开源库趋势可视化 2026/9/6 22:32:04

Gradio 交互式数据看板实战:用 gr.Blocks、CheckboxGroup 与 gr.Plot 构建开源库趋势可视化

Gradio 交互式数据看板实战:用 gr.Blocks、CheckboxGroup 与 gr.Plot 构建开源库趋势可视化 【免费下载链接】gradio Build and share delightful machine learning apps, all in Python. 🌟 Star to support our work! 项目地址: https://gitcode.com…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞