【发布时间】:2016-12-23 20:40:48
【问题描述】:
所以我花了一整天的时间试图解决这个问题,可惜我失败了。我需要帮助!所以我安装了 Eclipse 和 MinGW,这样我就可以编写一个 C 程序了。我对这一切都很陌生。我需要能够访问一个 sqlite 数据库。所以我下载了 sqlite 合并并将其解压缩到 C:/sqlite3,它包含两个 .c 文件和两个 .h 文件。在示例中,我在网上看到它们包含 sqlite.h 头文件,如下所示:
#include <sqlite.h>
所以我认为我需要添加一个包含我的 sqlite 信息的文件夹。因此,我单击我的项目并选择 Properties>C/C++ General>Paths and Symbols。选择“包含”选项卡并突出显示语言 GNU C,我添加包含目录 C:\sqlite3。到目前为止没有问题,我可以构建一个在控制台中打印我的名字的项目。
现在我添加一些来自教程网站的示例代码:
#include <stdio.h>
#include <sqlite3.h>
int main(int argc, char* argv[])
{
sqlite3 *db;
int rc;
rc = sqlite3_open("test.db", &db);
if( rc ){
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
return(0);
}else{
fprintf(stderr, "Opened database successfully\n");
}
sqlite3_close(db);
}
我收到 3 个错误,声称未定义对 sqlite3 函数的引用。所以我想我需要在编译器中添加一个指向 sqlite3 的链接。所以现在我转到 Properties>C/C++ Build/Settings 并将 -lsqlite3 添加到 MinGW C Linker 命令行。现在,当我构建项目时,我的错误消失了,但是我得到一个编译错误,上面写着:
c:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/6.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lsqlite3
它看起来像是在 MinGW 目录中寻找 sqlite3 文件。我被困住了。我已经尝试将文件粘贴到 MinGW 目录中,即使这样也不起作用。我知道我错过了一些对世界来说显而易见的东西,但我的头上只剩下大约 5 根头发,我真的可以利用一些洞察力。请帮助我使用 MinGW 设置 Eclipse 并访问 Sqlite。谢谢!
【问题讨论】:
-
-lsqlite3将是如果您通过调用编译器进行链接(即:gcc、clang 等...),同时与ld链接您将使用-l sqlite3 -L <searchdir for the static lib>