You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

xerial/sqlite-jdbc驱动下SQLite扩展unionvtab/swarmvtab DLL加载报错问询

报错触发原因

该报错核心是扩展DLL与DBeaver运行环境不兼容,已经可以排除路径、DLL损坏类问题(同路径DLL可在sqlite3.exe中正常加载),具体触发点有两个:

  • 架构不匹配:VS2019默认编译的DLL架构和启动的命令行架构一致,如果你编译的是x64版DLL,但DBeaver是32位版本/自带的SQLite JDBC驱动是32位,就会无法识别64位DLL,反之同理
  • 运行时依赖缺失:默认编译的DLL用的是动态VC运行时,如果DBeaver运行环境中没有对应版本的VC++可再发行组件包,DLL加载时依赖项解析失败,就会被判定为无效Win32程序

解决步骤

  1. 确认DBeaver的运行架构
    打开DBeaver,点击帮助 > 关于DBeaver > 安装细节 > 配置,查找os.arch参数:
  • 如果值为x86,说明DBeaver是32位,需要编译32位版本的扩展DLL
  • 如果值为amd64,说明DBeaver是64位,需要编译64位版本的扩展DLL
  1. 编译对应架构的DLL
    重新打开对应架构的VS2019开发者命令行,执行原编译命令即可:
  • 编译32位:打开「x86 Native Tools Command Prompt for VS 2019」执行命令
  • 编译64位:打开「x64 Native Tools Command Prompt for VS 2019」执行命令
  1. 可选:消除运行库依赖
    如果不想额外安装VC运行库,可以在编译参数中添加静态运行时标识,把运行库直接打包进DLL:
cl /MT unionvtab.c /link /dll /out:unionvtab.dll
  1. 验证加载
    重启DBeaver后重新执行SELECT load_extension('你的DLL全路径')即可正常加载。

内容的提问来源于stack exchange,提问作者Pepik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:24:02