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

VSCode下C++结合SQLite3开发数据库课程作业链接错误如何解决

问题原因

你遇到的是GCC链接阶段报错,编译工具可以找到sqlite3的函数声明,但是找不到对应的函数实现,本质是编译命令中没有添加sqlite3的库链接参数。

修复步骤

1. 前置文件准备

确认你的sqlite3文件夹D:\SSD\Desctop\barethika\下存在以下文件:

  • 已有sqlite3.h(你当前已经满足)
  • 新增libsqlite3.a(MinGW环境使用的静态库文件,如果你下载的sqlite预编译包是32位就找对应32位的.a文件,64位就找64位的,避免架构不匹配)

2. 代码修改

把头文件引入的绝对路径改成相对引用,方便后续项目迁移:

#include <stdio.h>
#include "sqlite3.h" 

int main(int argc, char* argv[]) {
   sqlite3 *db;
   char *zErrMsg = 0;
   int rc;

   rc = sqlite3_open("test.db", &db);

   if( rc ) {
      fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
      return(0);
   } else {
      fprintf(stderr, "Opened database successfully\n");
   }
   sqlite3_close(db);
}

3. VSCode编译配置修改

如果你用Code Runner插件运行代码

  • 打开VSCode设置,搜索Code-runner: Executor Map,点击「在settings.json中编辑」
  • 找到cpp对应的配置行,修改为:
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt -I\"D:\\SSD\\Desctop\\barethika\" -L\"D:\\SSD\\Desctop\\barethika\" -lsqlite3 && $dir$fileNameWithoutExt",

参数说明:

  • -I后面跟头文件所在目录,告诉编译器去哪里找sqlite3.h
  • -L后面跟库文件所在目录,告诉链接器去哪里找libsqlite3.a
  • -lsqlite3是告诉链接器要链接libsqlite3.a库

如果你用tasks.json配置编译任务

打开.vscode/tasks.json,在args数组的末尾添加三个参数:

"-ID:\\SSD\\Desctop\\barethika",
"-LD:\\SSD\\Desctop\\barethika",
"-lsqlite3"

4. 运行验证

修改完配置后重新运行代码,正常会输出Opened database successfully,同时代码目录下会生成test.db数据库文件。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 13:54:02