我是Code :: Blocks和SQLite的初学者,并且对C ++有一些基础知识。我目前正在使用Ubuntu 11.04。
我已下载SQLite Amalgamation here。当我解压缩zip文件时,其中有四个文件:shell.c
,sqlite3.c
,sqlite3.h
和sqlite3ext.h
。如果我只是将这些文件添加到(例如)控制台项目中,则会发出错误:下载的sqlite的.c都有自己的主要功能。从项目中删除它们,错误消失了,我可以调用#include "sqlite3.h"
。我正在尝试关注this,并尝试了here中的前两行代码,并发出错误:undefined reference to sqlite3_open
。
我认为直接将这些.h直接添加到控制台项目中并不是使用它的正确方法,但我不确定。
我应该如何使用它们?我该怎么做才能将它们用于我的C ++程序?
非常感谢任何帮助。 :)
编辑:我还尝试按照this创建这些sqlite文件的.a文件。当我尝试它时,它会发出错误:cannot find -lsqlite
。
答案 0 :(得分:5)
我明白了!虽然我做了一些导致问题的事情。我忘了删除我在Project>中添加的.a文件。构建选项>链接器设置较早,这导致了问题..
以下是我添加SQLite的步骤:(对于可能存在相同问题的那些)
将从SQLite Amalgamation中提取的文件复制到项目目录中。
添加sqlite文件(项目>添加文件)除了shell.c(它是导致多功能错误的那个)
编译它(是的,一个简单的Ctrl + f9)。
这里有错误:undefined reference to pthread_mutexattr....
。通过转到Project>修复这些问题。构建选项>突出显示左上角Debug
和Release
上方的“项目名称”>链接器设置,并将"-lpthread"
(不带引号)添加到Other linker options:
。
发现了一些错误:undefined reference to dlopen, dlerror....
。在之前添加的'“-lpthread”'正下方添加'“-ldl”'。
完成:)
答案 1 :(得分:3)
作为一名初学者,我没有为Windows找到完整的答案,而在开始时理解所有内容都非常痛苦。所以这对我有用。
就是这样,我希望它能为另一个菜鸟节省一些搜索时间
答案 2 :(得分:2)
您需要首先编译sqlite代码,然后只需#include "sqlite3.h"
编译到您需要它的项目中。
<强> UPD:强> 试试这个:
从sqlite网站下载this package并将其解压缩到一个名为“sqlite”的文件夹中。打开终端,进入此文件夹。在里面,运行
./configure
sudo make
sudo make install
看看会发生什么。它应该自动构建。请参阅存档中的README文件。