加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite安装

发布时间:2020-12-13 00:13:11 所属栏目:百科 来源:网络整理
导读:在linux下安装sqlite linux平台 :CentOS Sqlite版本 :sqlite-3.5.6 1.源码安装步骤如下: 1)wget http://www.sqlite.org/sqlite-3.5.6.tar.gz 2)tar -xzvf sqlite-3.5.6.tar.gz 3)cd sqlite-3.5.6 4)./configure --disable-tcl ##加上这个选项则不需要TCL,

在linux下安装sqlite


linux平台
:CentOS
Sqlite版本:sqlite-3.5.6

1.源码安装步骤如下:
1)wget http://www.sqlite.org/sqlite-3.5.6.tar.gz
2)tar -xzvf sqlite-3.5.6.tar.gz
3)cd sqlite-3.5.6
4)./configure --disable-tcl ##加上这个选项则不需要TCL,否则在2.4内核上编译通不过
5)make
6)make install

另外:

如果make的时候提示错误

../sqlite-3.5.1/src/tclsqlite.c:2424: error: syntax error before '*' token
../sqlite-3.5.1/src/tclsqlite.c: In function `Tclsqlite_SafeInit':
../sqlite-3.5.1/src/tclsqlite.c:2424: error: `TCL_OK' undeclared (first use in this function)
../sqlite-3.3.5/src/tclsqlite.c: In function `DbUpdateHandler':
../sqlite-3.3.5/src/tclsqlite.c:333: warning: passing arg 3 of `Tcl_ListObjAppendElement' makes pointer from integer without a cast
../sqlite-3.3.5/src/tclsqlite.c: In function `tclSqlFunc':
../sqlite-3.3.5/src/tclsqlite.c:419: warning: passing arg 1 of `Tcl_NewByteArrayObj' discards qualifiers from pointer target type


这个都是tcl相关的错误,可以先安装ActiveTcl以解决.假如你不需要tcl支持,那么这个错误可以这样避免: .

/configure --help 看一下就知道了。可以 加上 --disable-tcl 选项



2.测试是否安装成功

# cd /usr/lcoal/sqlite-3.5.6

# ./sqlite3 text.db


如果安装成功,会出现下面这样的信息

SQLite version 3.5.6

Enter ".help" for instructions

sqlite>

编写一个C语言程序并运行。
现在我们来写个C程序,调用 sqlite 的 API 接口函数查询数据库中表的内容。并在该环境中运行。
首先,在sqlite编译成功之后,创建一个sqlite数据库和表,并插入数据。过程如下(在刚才的路径下):
# ./sqlite3 test.db
sqlite>
sqlite提示符出来,就表明成功啦。然后,
sqlite>create table users(name varchar(30) not null,age Integer not null);
sqlite>insert into users values(‘anny’,20);
sqlite>select * from users;
anny|20 //这就是我输入的记录啦:)
sqlite>.exit //从sqlite数据库中退出,或者用命令.quit(注意前面有一个点)
然后,创建一个目录,用于存放将要编写的C语言程序。
#mkdir /usr/local/te/tool/Linux-i686/sqlite_test
#cd /usr/local/te/tool/Linux-i686/sqlite_test
现在,编写一个名为test.c的C语言程序,用Linux下的文本编辑器。保存在目录/usr/local/te/tool/Linux-i686/sqlite_test下。该程序是根据zieckey编写的test_sqlite.c改编的。源程序如下(修改的部分有注明):
#include <stdio.h>
#include <sqlite3.h>

int main( void)
{
sqlite3 *db=NULL;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open("test.db",&db);
if( rc){
printf("Can't open databasen"); //这里改了。要是按原先的,会提示stderr未定义,我不知道为什么。哪位朋友知道一定要告诉我哦。
sqlite3_close(db);
exit(1);
}
else printf("open test.db successfully!n");
sqlite3_close(db);
return 0;
}

为了比较,给出zieckey所写的test_sqlite.c。

#include <stdio.h>
#include <sqlite3.h>

int main( void )
{
sqlite3 *db=NULL;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open("zieckey.db",&db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
if( rc ){
fprintf(stderr,"Can't open database: %sn",sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
else printf("open zieckey.db successfully!n");

sqlite3_close(db); //关闭数据库
return 0;
}

最后编译程序test.c。
#gcc test.c –o test.out –lsqlite3 -L/usr/local/te/tool/Linux-i686/sqlite-3.3.6-arm-linux/lib -I/usr/local/te/tool/Linux-i686/sqlite-3.3.6-arm-linux/include
具体的细节问题可以参考zieckey所写的《sqlite3嵌入式数据库的ARM-Linux移置详解[原创]--->为初学者而作》。
编译成功之后,运行test.out。
#./test.out
若出现错误:./test.out: error while loading shared libraries: libsqlite3.so.0: cannot open shared object file: No such file or directory,说明运行沿着系统默认路径没有找到库文件。这时需要指定 libsqlite3.so.0 库文件的路径。 在shell下输入: # export LD_LIBRARY_PATH=/usr/local/te/tool/Linux-i686/sqlite-3.3.6-arm-linux/lib:$LD_LIBRARY_PATH 再运行 # test.out 当提示: #bash: test.out: command not found 时,请以下面方式运行: # ./test.out 正常情况就OK了! open test.db successfully! 至此,在linux系统下的GNU环境中完成了sqlite的编译和C程序的编译运行。 此外,在开始的时候我说过,对于Tcl有两种处理,一是去掉Tcl的引用,二是安装ActiveTcl。前面讲了去掉Tcl引用的方法。现在顺便介绍一下ActiveTcl的安装(也许它对于很多人来说很简单,但是我在第一次安装的时候出了问题,我想也许还会有朋友会碰到该问题的,因此就写出来,希望对于象我一样刚接触Tcl的朋友会有帮助)。 ① 下载最新版本ActiveTcl8.4.13.0.261555-linux-ix86.tar.gz。 ② 解压。 # tar zxvf ActiveTcl8.4.9.0.121397-linux-ix86.tar.gz ③ 安装。 #cd ActiveTcl8.4.9.0.121397-linux-ix86 #./install.sh 如果用默认路径 /usr/local/ActiveTcl/ 安装,请在运行install.sh之前,编辑 /etc/profile 文件并加入以下内容 PATH=$PATH:/usr/local/ActiveTcl/bin export PATH 我第一次出错就是在这里,没有对profile文件进行修改,因此在安装的时候,选择了默认路径/usr/local/ActiveTcl/之后点击next却怎么都过不去! ④ 建立链接 #rm /usr/bin/wish #ln -s /usr/local/ActiveTcl/bin/wish /usr/bin/wish 注销后重新登陆,OK!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读