在Windows上使用SQLite和C.

我试图在Windows Vista上使用SQLite进行数据存储,在C(在Dev-Cpp IDE上)开发一个项目。 我正在尝试运行此代码: Sqlite with C

我在/ lib路径中移动了sqlite3.h。 但是当我试图运行程序时,我收到很多链接器错误,说“未定义引用sqlite3_open”等。

谷歌给了我Linux命令,这里不能使用:(可以somone指导我完成使用C的sqlite的整个过程,我对这些事情很新。我在哪里放sqlite3.exe?

非常感谢 !!

我终于找到了答案: http : //source.online.free.fr/Windows_HowToCompileSQLite

上面的链接创建了一个必须放在/ bin中的.dll,以及一个必须作为选项传递给链接器的.a文件!

谢谢大卫!!

sqlite3.h应该在您的包含路径中,而不是您的库路径。 库文件是另一个文件; 如果您使用Dev-Cpp,则应将其命名为libsqlite3.a (@Ignacio提到的.lib文件用于MSVC)。 一旦将该文件放在库路径中,您还需要指示编译器链接它,这应该在Dev-Cpp项目的编译选项中。 你根本不需要sqlite3.exe ; 这是为了手动查询数据库文件而不是以编程方式查询数据库文件。

关于SQLite的文档可以在项目的主页上找到 。 还有一个快速入门指南 。

但是,在此信息有用之前,您需要了解如何使用编译器和链接器来构建使用外部库的程序。 从您提出的问题来看,其中一些尚未明确,因此可能需要进行审核:

编译器(来自Dev-Cpp IDE发行版的GCC的MinGW版本)将.c和.h文件中常规发现的源文本转换为包含机器语言的目标文件,其中某些符号的值未指定。 链接器(Gnu的ld与MinGW一起使用)从其命令行以及库中获取目标文件(通常是.a文件,其中选项-lsqlite3将引用名为libsqlite3.a的库文件)并将它们收集到单一的可执行

因此,为了使用SQLite库,您需要在编译器可以找到它们以满足#include指令的位置使用它的头文件。 并且您需要匹配的对象库,以便链接器可以满足SQLite API中对函数的所有引用。

在项目中包含SQLite的一种推荐方法是从单文件合并中编译它,并将其直接链接到您的程序。 通过这种方式,您可以获得一个使用与应用程序其余部分相同的编译器编译的库(这可以减少运行时出现细微问题的可能性)并且不需要拥有DLL(或.so)文件在您的发行版中为您的用户带来问题。

还建议您使用sqlite3.exe实用程序的副本。 这是一个有用的实用程序 ,可以让您检查SQLite数据库文件并进行临时更改。 只需将它放在PATH中的某个位置,以便可以从命令提示符处使用它。

如果必须使用预构建DLL,则可以从SQLite项目中获取一个。 它碰巧以与MinGW兼容的方式编译。 具体来说,它使用MinGW使用的相同C运行时库。 请注意,如果您使用Visual Studio或Windows的其他编译器,它可能不完全兼容。

您不需要sqlite3.exe。 你需要DLL来运行它,你需要导入.lib链接以构建它。

要在gcc中使用sqlite数据库,请按照下列步骤操作…

  1. 从这里下载sqlites文件或在这里下载我的备份(包括sqlite3.h)
  2. 解压缩下载的文件。
  3. copyinto你的源代码文件夹(包括.c文件)
  4. sqlite3.dll和sqlite3.h文件必须与.c文件一起使用
  5. 示例源代码可以在这里找到! www(dot)tutorialspoint.com/sqlite/sqlite_c_cpp(dot)htm
  6. 但是从示例中你必须将#include改为#include“sqlite3.h”
  7. 如果您的源文件是test.c,那么编译过程就是这样

    gcc -c test.c gcc -o test.exe test.o sqlite3.dll

Makefile文件

 test.exe: test.o sqlite3.dll gcc -o test.exe test.o sqlite3.dll test.o: test.c gcc -c test.c 

代码::块设置>编译器设置>链接器设置>添加>然后找到sqlite3.dll并添加。 将sqlite3.h复制到源代码文件夹中,您必须更改#include“sqlite3.h”。