红联Linux门户
Linux帮助

linux(64/32)下安装sqlite3

发布时间:2017-01-10 11:33:14来源:linux网站作者:CCH陈
一、LINUX安装sqlite3
1、下载最新版的sqlite3,网址:http://www.sqlite.org/download.html
下载sqlite-autoconf-3150200.tar.gz,最新版本是sqlite-autoconf-3160200.tar.gz
linux(64/32)下安装sqlite3
2、下载成功后解压并安装
[root@localhost]# tar -zxvf sqlite-autoconf-3150200.tar.gz   (解压)
[root@localhost]# cd sqlite-autoconf-3150200   (进入文件夹)
[root@localhost]# ./configure   (默认配置)
[root@localhost]# sudo make   (编译生成)
[root@localhost]# sudo make install  (软件安装)
扩展:如果需交叉编译等,修改./configure --help下的配置。
如果你需指定目录 ./configure --prefix=/home/local/......
如果你的系统是64位,而需产生32位的sqlite3,需要在CFLAGS后增加-m32。
提前是你系统已经支持-m32的编译。如果不是,请百度。
PS:(小编我是小白,./configure CFLAGS 用不来,我是直接修改Makefile文件 里面CFLAGS = -g -O2 -m32)
默认情况下,make install 生产的sqlite3.so 是在/usr/local/lib下,sqlite3.exe是在/usr/local/bin下,sqlite3.h是在/usr/local/include下。
 
二、测试
在任意目录下新建一个数据库,比如sample
命令:
[root@localhost]# sqlite3 sample
会出现如下提示:
SQLite version 3.13.0 2016-05-18 10:57:30
Enter ".help" for usage hints.
sqlite>
输入 .help可以看到命令列表
输入 .exit 退出。
用代码测试
#include <stdio.h>  
#include <stdlib.h>  
#include <sqlite3.h>  
int main(void)  
{  
sqlite3 *db;
int ret =0;
ret = sqlite3_open("sample",&db);
if(ret !=SQLITE_OK)
{
printf("sqlite3 test err = %d\r\n" , ret);
return -1;
}
printf("sqlite3 test ok\r\n");
sqlite3_close(db);
return 0;
}
将.c文件和数据库文件放在同一个目录下,并用GCC编译
[root@localhost]# gcc db_test.c -lsqlite3  
如果你是指定编译32位库,则使用命令
[root@localhost]# gcc -m32 db_test.c -lsqlite3
运行
 
三、问题调试
如果运行出现这样问题:
[root@localhost]# ./a.out
./db.out: error while loading shared libraries: libsqlite3.so.0: cannot open shared object file: No such file or directory
这个问题因为刚刚编译的时候没有选择静态编译,那么按照默认的编译就动态编译的。
动态编译后,由于可执行文件在运行时要调用系统库文件,
那么沿着系统默认的库文件搜索路径搜索,就可能找不到我们现在所需的库文件。
致使出现 "error while loading shared libraries" 等错误。
我们可以这样解决:
重新配置系统环境变量 LD_LIBRARY_PATH这时需要指定 libsqlite3.so.0 库文件的路径,也就是配置系统环境变量 LD_LIBRARY_PATH ,使系统能够找到 libsqlite3.so.0 。
[root@localhost]# export LD_LIBRARY_PATH=/usr/local/sqlite3/lib:$LD_LIBRARY_PATH
好拉,现在再运行
[root@localhost]# ./a.out
[root@localhost]# sqlite3 test ok
但是,export LD_LIBRARY_PATH 添加方式仅限你这次打开的shell,非永久,故应该将环境变量添加到/etc/ld/.so.conf下。并且ldconfig一次,使之生效。
[root@localhost]# sudo gedit /etc/ld/.so.conf
最后一行添加 /usr/local/lib
保存退出
[root@localhost]# ldconfig
 
本文永久更新地址:http://www.linuxdiyf.com/linux/27677.html