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

linux(64/32) 下安装sqlite3

2017-01-10 浏览()

一、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为海量的数据提供了计算。

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

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。