首页 > 技术 > 系统 > Linux > linux(64/32) 下安装sqlite3

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 <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


感谢关注 Ithao123Linux频道,ithao123.cn是专门为互联网人打造的学习交流平台,全面满足互联网人工作与学习需求,更多互联网资讯尽在 IThao123!

关键词:

精选专题

Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。 Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

产品设计是互联网产品经理的核心能力,一个好的产品经理一定在产品设计方面有扎实的功底,本专题将从互联网产品设计的几个方面谈谈产品设计

随着国内互联网的发展,产品经理岗位需求大幅增加,在国内,从事产品工作的大部分岗位为产品经理,其实现实中,很多从事产品工作的岗位是不能称为产品经理,主要原因是对产品经理的职责不明确,那产品经理的职责有哪些,本专题将详细介绍产品经理的主要职责