【问题标题】:I cannot get Eclipse MinGW and Sqlite to Work Together for a C program我无法让 Eclipse MinGW 和 Sqlite 一起为 C 程序工作
【发布时间】: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 &lt;searchdir for the static lib&gt;

标签: c eclipse sqlite mingw


【解决方案1】:

合并应该与您的其他源文件一起编译。只需将.c 文件添加到您的项目中,就好像它是您自己的源文件之一。

【讨论】:

  • 我按照您的建议将 sqlite.c 和 sqlite.h 添加到了我的 src 文件夹中。我摆脱了前面提到的 sqlite3 文件夹的路径。我留在 MinGW 链接器中的 -lsqlite3 命令中。我还有3个问题。我的 src 文件夹中的 sqlite3.c 文件上有一个警告三角形。 #include 行说致命错误:sqlite3.h 没有这样的文件或目录。在构建过程中,它说 ..\src\RealDealProcessor.c:12:21: fatal error: sqlite3.h: No such file or directory
  • 删除-lsqlite3。您需要将.h文件的目录添加到包含路径中。
  • 你就是男人!我认为我们让它工作了。它构建,没有错误,并按预期运行。唯一的问题是 sqlite3.c 文件夹上还有一个小的警告三角形,我不知道为什么。你知道我怎么知道的吗?
  • 我不知道如何认真对待这个警告,但这就是它在“问题”视图中所说的内容:变量 'bRc' set but not used [-Wunused-but-set-variable] sqlite3.c /RealDealProcessor/src line 26579 C/C++ 问题
猜你喜欢
  • 2014-11-22
  • 2019-03-07
  • 1970-01-01
  • 2017-10-06
  • 2011-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多