2012-07-20 97 views
1

我是一个完整的初学者,具有Code :: Blocks和SQLite,并具有一些C++基础知识。我目前正在使用Ubuntu 11.04。如何在使用Code :: Blocks的C++程序中使用SQLite?

我已经下载SQLite Amalgamation here。当我提取zip文件时,里面有四个文件:shell.c,sqlite3.c,sqlite3.hsqlite3ext.h。如果我只是将这些文件添加到(例如)一个控制台项目中,它会发出一个错误:下载的sqlite的.c文件都有它们自己的主函数。删除项目中的错误消失了,我可以致电#include "sqlite3.h"。我试图按照this,并尝试从here的前两行代码,它给出了一个错误:undefined reference to sqlite3_open

我认为将这些.h's直接添加到控制台项目并不是正确的方式来使用它,但我不确定。

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

任何帮助,非常感谢。 :)

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

回答

2

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

UPD: 试试这个:从SQLite的网站

下载this package某处提取,比方说,到一个名为 “源码” 的文件夹。打开终端,进入该文件夹。在里面,运行

./configure 
sudo make 
sudo make install 

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

+0

感谢您的答复:) ..though我不知道如何编译它..做我只是将它添加到一些项目和“构建项目”? – 2012-07-20 07:01:30

+0

@GeraldTorres,更新了我的回答 – SingerOfTheFall 2012-07-20 07:13:10

+0

谢谢:)虽然我已经解决它之前我读这个.. :(谢谢反正:) – 2012-07-20 07:39:26

4

我明白了!虽然有些事情是我做的导致了一些问题..我忘了删除我之前在Project> Build Options> Linker Settings中添加的.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''。

DONE :)

1

我没有找到Windows作为一个初学者一个完整的答案,并在开始的时候是很痛苦的明白了一切。所以这里是对我有用的。

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

这就是一切,我希望它可以节省一些搜索时间再小白

相关问题