如何在C++程序中使用SQLite使用代码::块

How to use SQLite in C++ program using Code::Blocks?

本文关键字:SQLite 代码 C++ 程序      更新时间:2023-10-16

我是Code::Blocks和SQLite的初学者,对C++有一些基本知识。我目前使用的是Ubuntu 11.04。

我在这里下载了SQLite合并。当我提取zip文件时,里面有四个文件:shell.csqlite3.csqlite3.hsqlite3ext.h。如果我只是将这些文件添加到(例如)控制台项目中,就会出现一个错误:下载的sqlite的.c每个都有自己的主函数。从项目中删除这些,错误就消失了,我可以调用#include "sqlite3.h"。我正试图遵循这一点,并尝试了这里的前两行代码,结果出现了一个错误:undefined reference to sqlite3_open

我认为将那些.h直接添加到控制台项目中不是正确的使用方式,尽管我不确定。

我应该如何使用这些?我应该怎么做才能将它们用于我的C++程序?

非常感谢您的帮助。:)

编辑:我还试图通过以下操作创建这些sqlite文件的.a文件。当我尝试它时,它会发出一个错误:cannot find -lsqlite

我搞定了!尽管我做了一些事情,但还是引起了一些问题。。我忘记删除之前在"项目">"构建选项">"链接器设置"中添加的.a文件,这导致了问题。。

以下是我添加SQLite的步骤:(对于那些可能有相同问题的人)

  1. 将从SQLite合并中提取的文件复制到项目的目录中。

  2. 添加sqlite文件(项目>添加文件),但shell.c除外(这是导致多功能错误的原因)

  3. 编译它(是的,一个简单的Ctrl+f9)。

  4. 这里有错误:undefined reference to pthread_mutexattr....。通过转到"项目">"构建选项">在左上角的DebugRelease上方突出显示"项目名称">"链接器设置",并将"-lpthread"(不带引号)添加到Other linker options:,可以修复这些问题。

  5. 还发现了一些错误:undefined reference to dlopen, dlerror....。在前面添加的"-lpthread"下面添加"-ldl"。

完成:)

作为一个初学者,我没有找到Windows的完整答案,一开始理解一切都很痛苦。以下是对我有效的方法。

  1. 下载SQlite合并文件
  2. 打开代码::块->新建项目->选择静态库
  3. 解压缩下载的文件,并将文件夹/内容复制到新的项目目录中。将所有文件添加到项目中,生成项目
  4. 您将在bin/Debug或bin/Release目录中找到ProjectName.a文件。将该文件复制到实际的SQlite项目目录中
  5. 转到代码::块项目->生成选项。选择"链接器设置"选项卡,然后将路径添加到.a文件。还不要关闭它
  6. 在"搜索目录"选项卡中,选择"编译器"选项卡,添加合并头文件的路径,或将头文件复制到您的目录(您可以将头文件添加到项目中),然后在"链接器"选项卡中添加.a文件的路径
  7. 现在编译!!!希望它能运行

仅此而已,我希望它能为另一个noob 节省一些搜索时间

您需要首先编译sqlite代码,然后将#include "sqlite3.h"编译到您需要的项目中。

UPD:试试这个:

从sqlite站点下载这个包,并将其提取到某个位置,例如,一个名为"sqlite"的文件夹中。打开终端,进入该文件夹。在里面,运行

./configure
sudo make 
sudo make install

看看会发生什么。它应该自动构建自己。也可以查阅档案中的自述文件。