我正在尝试在 Eclipse 的 C++ 项目中使用 sqlite3,并在网上找到了大量有关使用 API 的建议,但不幸的是我遇到了较早的障碍。我想这是因为我缺乏 C/C++ 和 CDT 的经验。我只是将 sqlite3.c 和 sqlite3.h 复制到项目的源文件夹中,并有一个测试方法如下:
int main() {
sqlite3* db;
sqlite3** dbpointer = &db;
const char* dbname = "test.db";
sqlite3_open(dbname, dbpointer);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
然而,sqlite3.c 文件在 Eclipse 中显示时存在许多错误。例如,以下部分注释为“无法解析字段‘IN_DECLARE_VTAB’”。
#ifdef SQLITE_OMIT_VIRTUALTABLE
#define IN_DECLARE_VTAB 0
#else
#define IN_DECLARE_VTAB (pParse->declareVtab)
#endif
Run Code Online (Sandbox Code Playgroud)
当我尝试编译时,出现一系列错误,例如:
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/sqlite3.d" -MT"src/sqlite3.d" -o "src/sqlite3.o" "../src/sqlite3.c"
../src/sqlite3.c:30997: error: initializer element is not constant
../src/sqlite3.c:30997: error: (near initialization for `aSyscall[0].pCurrent')
../src/sqlite3.c:30997: error: initializer element …Run Code Online (Sandbox Code Playgroud)