VS Code配置MinGW64编译SQLite3库

VS Code用MinGW64编译C++代码安装MSYS2软件并配置SQLite3库和测试引用库代码的完整具体步骤。


1. 安装 MSYS2

  1. 下载安装包:
    • 访问 MSYS2 官网
    • 下载 msys2-x86_64-xxxx.exe(最新版)
  2. 安装:
    • 运行安装程序,按提示操作(默认路径 C:\msys64
  3. 更新包数据库
    • 打开 MSYS2 MSYS(开始菜单中)

    • 执行:

      bash 复制代码
      pacman -Syu
    • 关闭终端,重新打开 MSYS2 MSYS ,再次执行:

      bash 复制代码
      pacman -Su

2. 安装 MinGW64 工具链和 SQLite3

  1. 打开 MSYS2 MinGW x64 终端(非 MSYS 终端!)

  2. 安装编译器和 SQLite3:

    bash 复制代码
    pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-sqlite3

3. 配置 VS Code

(1) 设置环境变量
  • 将 MinGW64 的 bin 目录添加到系统 PATH
    • 路径示例:C:\msys64\mingw64\bin
    • 操作步骤
      1. Win + S 搜索 "环境变量" → 编辑系统环境变量
      2. Path 中添加 C:\msys64\mingw64\bin
(2) 安装 VS Code 扩展
  • 安装官方扩展:C/C++

4. 配置 VS Code 项目

(1) 创建项目结构
复制代码
your_project/
  ├── .vscode/
  │    ├── tasks.json   (编译配置)
  │    └── c_cpp_properties.json (IntelliSense 配置)
  ├── main.cpp          (测试代码)
  └── Makefile          (可选)
(2) 配置 c_cpp_properties.json
json 复制代码
{
  "configurations": [
    {
      "name": "Win32",
      "includePath": [
        "${workspaceFolder}/**",
        "C:/msys64/mingw64/include/**"  // SQLite3 头文件路径
      ],
      "compilerPath": "C:/msys64/mingw64/bin/g++.exe",
      "cStandard": "c17",
      "cppStandard": "c++17",
      "intelliSenseMode": "windows-gcc-x64"
    }
  ],
  "version": 4
}
(3) 配置 tasks.json(编译任务)
json 复制代码
{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "cppbuild",
      "label": "Build with SQLite3",
      "command": "g++",
      "args": [
        "-g",
        "${file}",
        "-o",
        "${fileDirname}/${fileBasenameNoExtension}.exe",
        "-I", "C:/msys64/mingw64/include",   // 头文件路径
        "-L", "C:/msys64/mingw64/lib",       // 库文件路径
        "-lsqlite3"                          // 链接 SQLite3
      ],
      "options": {
        "cwd": "C:/msys64/mingw64/bin"      // 确保运行时能找到 DLL
      },
      "problemMatcher": ["$gcc"],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}

5. 测试代码

(1) 创建 main.cpp
cpp 复制代码
#include <iostream>
#include <sqlite3.h>

int main() {
    // 测试 SQLite3 版本
    std::cout << "SQLite Version: " << sqlite3_libversion() << std::endl;
    
    // 测试数据库连接
    sqlite3 *db;
    int rc = sqlite3_open(":memory:", &db);
    
    if (rc == SQLITE_OK) {
        std::cout << "Database opened successfully!" << std::endl;
        sqlite3_close(db);
    } else {
        std::cerr << "Error opening database: " << sqlite3_errmsg(db) << std::endl;
    }
    
    return 0;
}
(2) 编译运行
  1. 在 VS Code 中打开 main.cpp
  2. 编译 :按 Ctrl+Shift+B 执行编译任务
  3. 运行
    • 在终端中执行:

      bash 复制代码
      ./main.exe
    • 或使用 VS Code 调试功能(按 F5


6. 验证输出

成功时输出:

复制代码
SQLite Version: 3.xx.x
Database opened successfully!

常见问题解决

  1. 找不到 sqlite3.h

    • 检查 c_cpp_properties.json 中的 includePath 是否指向 C:/msys64/mingw64/include
  2. 链接失败(undefined reference)

    • 确保 tasks.json 中已添加 -L C:/msys64/mingw64/lib -lsqlite3
  3. 运行时缺少 sqlite3.dll

    • C:\msys64\mingw64\bin\sqlite3.dll 复制到项目目录
    • 或永久添加 C:\msys64\mingw64\bin 到系统 PATH
  4. MSYS2 更新后路径变化

    • 所有配置中的路径保持 C:/msys64/...(使用正斜杠)

关键提示 :始终使用 MSYS2 MinGW x64 终端安装库,并在 VS Code 中配置正确的 MinGW64 路径(C:/msys64/mingw64)。

相关推荐
华科云商xiao徐几秒前
Java并发编程常见“坑”与填坑指南
javascript·数据库·爬虫
zhangfeng11339 分钟前
R 语法高亮为什么没有,是需要安装专用的编辑软件,R语言自带的R-gui 功能还是比较简单
开发语言·r语言
惯导马工37 分钟前
【论文导读】IDOL: Inertial Deep Orientation-Estimation and Localization
深度学习·算法
广州腾科助你拿下华为认证41 分钟前
PostgreSQL认证_PGCM考试难度有多大?
数据库·postgresql
老姜洛克42 分钟前
自然语言处理(NLP)之n-gram从原理到实战
算法·nlp
代码的余温42 分钟前
Oracle RAC认证矩阵:规避风险的关键指南
数据库·oracle·矩阵
Cinema KI42 分钟前
内存管理这一块
c++
白鲸开源43 分钟前
一行代码引发 12G 内存 5 分钟爆仓!SeaTunnel Kafka 连接器"内存溢出"元凶抓到了
数据库·kafka·开源
chao1898441 小时前
基于MATLAB的线性判别分析(LDA)人脸识别实现
开发语言·matlab