Visual Studio 2019项目引入SQLite amalgamation包编译报错如何解决
错误原因及修复方案
你当前的核心操作错误是直接将源文件作为头文件引入到业务代码中,对应修复方式如下:
- 移除你业务代码中
#include "sqlite3.c"这行语句。sqlite3.c是SQLite的源码实现文件,不属于可引入的头文件范畴,直接引入会导致符号重复定义、编译参数作用范围异常等大量编译错误,和你遇到的报错完全匹配。
正确的SQLite amalgamation集成步骤
- 把下载的amalgamation包中的
sqlite3.h、sqlite3.c两个文件放到你的项目目录下,右键项目->添加->现有项,将两个文件都添加到VS项目的文件列表中。 - 在你需要调用SQLite能力的代码文件头部,仅添加头文件引入语句即可:
#include "sqlite3.h" - 如果编译出现未定义符号相关报错,可在项目属性->C/C++->预处理器->预处理器定义中按需添加SQLite编译宏,常用宏包括:
SQLITE_OMIT_AUTOINIT:关闭自动初始化逻辑,减少编译冗余SQLITE_ENABLE_COLUMN_METADATA:开启列元数据相关接口SQLITE_OMIT_DEPRECATED:移除废弃接口,减少编译告警
- 如果链接阶段报系统依赖缺失,可在项目属性->链接器->输入->附加依赖项中添加
advapi32.lib即可。
内容的提问来源于stack exchange,提问作者Garlic2394
相关产品推荐
相关产品推荐

