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

Windows下编译C++程序遇sqlite3.h缺失及链接错误求助

解决Windows下C++链接SQLite的未定义引用问题

你遇到的undefined reference错误是链接阶段缺少SQLite库文件导致的,头文件问题已经解决,现在需要把SQLite的实现代码或库文件和你的程序链接起来。针对Windows+MinGW环境(从错误里的collect2.exe判断你用的是MinGW的gcc),给你两种简单可行的方案:

方案一:直接编译SQLite源码(最适合新手)

  1. 从SQLite官网下载sqlite-amalgamation包(包含合并后的sqlite3.c和sqlite3.h源码文件)
  2. 把下载的sqlite3.c和sqlite3.h放到你的cpp代码同目录
  3. 编译时把sqlite3.c一起加入编译命令:
    g++ temp.cpp sqlite3.c -o temp.exe
    
    这样gcc会把SQLite的源码和你的代码一起编译链接,彻底解决未定义引用问题。

方案二:链接预编译库

  1. 下载对应Windows版本的SQLite预编译二进制包(比如sqlite-dll-win64-x64.zip,根据你的系统位数选择),里面包含sqlite3.dll和libsqlite3.a(MinGW用的导入库)
  2. 把libsqlite3.a放到你的项目目录,或者MinGW的lib目录下
  3. 编译时添加链接参数:
    g++ temp.cpp -o temp.exe -lsqlite3
    
    如果库在当前目录,也可以指定路径:
    g++ temp.cpp -o temp.exe -L./ -lsqlite3
    
  4. 运行程序前,把sqlite3.dll放到你的temp.exe同目录,否则程序会找不到动态库。

额外说明

你之前把#include <sqlite3.h>改成#include "sqlite3.h"并把头文件放同目录的操作是正确的,头文件问题已经解决,不用再调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:31:12