我正在尝试在 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;
}
但是,sqlite3.c 文件在 Eclipse 中出现了许多错误。例如,以下部分使用“无法解析字段 'IN_DECLARE_VTAB'”进行注释。
#ifdef SQLITE_OMIT_VIRTUALTABLE
#define IN_DECLARE_VTAB 0
#else
#define IN_DECLARE_VTAB (pParse->declareVtab)
#endif
当我尝试编译时,会出现一系列错误,例如:
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 is not constant
../src/sqlite3.c:30997: error: (near initialization for `aSyscall[0]')
../src/sqlite3.c:31009: error: initializer element is not constant
../src/sqlite3.c:31009: error: (near initialization for `aSyscall[1]')
../src/sqlite3.c:31017: error: initializer element is not constant
../src/sqlite3.c:31017: error: (near initialization for `aSyscall[2]')
我确实在这里找到了类似的问题,但似乎也没有在那里解决。
我怀疑这是 Eclipse 的设置问题,所以如果有人能给我任何有用的教程的建议或指导,我将不胜感激。如果我最好将其发布到专门的 sqlite 论坛,请告诉我。