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

Eclipse使用MinGW编译C++代码出现sqlite3库链接报错问题求助

解决MinGW下sqlite3库链接报错方案

报错核心原因是链接命令未加入sqlite3对应链接库参数,同时需确认使用的sqlite3库适配你安装的i686架构MinGW环境。你遇到的bad reloc address报错是链接器找不到符号后的衍生错误,解决sqlite3链接问题后会自动消失。

步骤1:确认sqlite3开发包适配当前MinGW环境

  • 你使用的是i686(32位)版本MinGW-w64,必须安装对应32位的sqlite3预编译静态/动态库,不可使用64位版本库
  • 确认F:\MinGW\lib目录下存在libsqlite3.a(静态库)或libsqlite3.dll.a(动态库导入库),同时F:\MinGW\include目录下存在sqlite3.h头文件

步骤2:修改链接命令追加sqlite3链接参数

你当前使用的链接命令如下:

g++ -std=c++11 "-LF:\\MinGW\\lib" -o test.exe main.o -lpsapi -lpthread -lm -ldl

在命令末尾追加-lsqlite3参数,修改后命令如下:

g++ -std=c++11 "-LF:\\MinGW\\lib" -o test.exe main.o -lpsapi -lpthread -lm -ldl -lsqlite3

注意:链接参数顺序有严格要求,依赖库必须放在调用它的目标文件(此处为main.o)之后,不可提前放置。

步骤3:动态库场景补充操作

如果你链接的是动态版本的sqlite3库,需要将sqlite3.dll文件放到生成的test.exe同级目录,或者添加到系统PATH环境变量中,否则运行时会提示找不到dll文件。

可选:手动编译适配的sqlite3库

如果当前MinGW环境没有对应版本的sqlite3库,可以下载sqlite3 amalgamation源码包,用当前MinGW工具链手动编译:

  1. 解压源码包进入源码目录
  2. 执行以下命令编译静态库:
gcc -c sqlite3.c -O2 -o sqlite3.o
ar rcs libsqlite3.a sqlite3.o
  1. 将生成的libsqlite3.a移动到F:\MinGW\lib目录,sqlite3.h移动到F:\MinGW\include目录即可正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:51:01