mm_*_*857 5 c c++ sqlite eclipse-cdt
我正在尝试在 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 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]')
Run Code Online (Sandbox Code Playgroud)
我确实在这里发现了类似的问题,但似乎也没有在那里得到解决。
我怀疑这是 Eclipse 的设置问题,因此如果有人能给我任何有用教程的建议或指导,我将非常感激。如果我最好将其发布到专门的 sqlite 论坛,请告诉我。
你有尝试过这种方式吗?(双指针):
int main() {
sqlite3* db;
const char* dbname = "test.db";
sqlite3_open(dbname, &db);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我猜你正在Linux上工作。
另一种方法是执行脚本:
int main() {
system("connectDB.sh");
/* connectDB.sh should be chmod +x */
}
Run Code Online (Sandbox Code Playgroud)
您的文件 connectDB 将是:
#!/bin/bash
sqlite3 test.db "select * from test.table"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1419 次 |
最近记录: |