linux(64/32) 下安装sqlite3

一、LINUX安装sqlite3

1、下载最新版的sqlite3,网址:http://www.sqlite.org/download.html

下载sqlite-autoconf-3150200.tar.gz

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  

#include  

#include  

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


你可能感兴趣的:(ubuntu)