3

我是 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.

4

3 回答 3

5

我得到了它!虽然我做了一些导致问题的事情..我忘记删除我之前在项目>构建选项>链接器设置中添加的.a文件,这导致了问题..

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

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

  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”。

完毕 :)

于 2012-07-20T07:37:21.080 回答
4

作为一个初学者,我没有找到完整的Windows答案,一开始什么都理解很痛苦。所以这对我有用。

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

就是这样,我希望它能为另一个菜鸟节省一些搜索时间

于 2017-08-24T16:08:30.880 回答
2

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

UPD: 试试这个:

从 sqlite 站点下载此包并将其解压缩到某个位置,例如,放入名为“sqlite”的文件夹中。打开终端,进入这个文件夹。在里面,运行

./configure
sudo make 
sudo make install

看看会发生什么。它应该自动构建自己。请参阅存档中的 README 文件。

于 2012-07-20T07:00:08.310 回答