【原创】CentOS 6.5编译安装SQLite 3以及C++调用SQLite 3

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: 【原创】CentOS 6.5编译安装SQLite 3以及C++调用SQLite 3

安装新版本SQLite 3之前要做的清理工作

首先确保我们的CentOS上没有安装SQLite3或者我们需要先卸载SQLite 3:

检查是否安装,可以直接通过命令:

sqlite3 --version

进行查看,如果有存在旧的版本,那么我们需要卸载先,防止后续安装的新版本和旧版本弄混淆。

卸载可以通过如下方式:

首先查找是否安装了sqlite的rpm包:

rpm -q sqlite

如果有安装,会显示如下:

[root@localhost ~]# rpm -q sqlite
sqlite-3.6.20-1.el6.x86_64

进行移除rpm包:

rpm -e --nodeps sqlite-3.6.20-1.el6.x86_64

移除之后,我们就可以进行后续新版本的安装了。

 

要编译SQLite 3,总共分三步:

1:下载源码;

官方下载地址:https://sqlite.org/download.html

download1

 

我们下载Source Code中的 sqlite-autoconf-3210000.tar.gz

2:编译安装;

将下载的源码扔到CentOS上,进行解压,配置安装:

线程安全的配置参考:

Use the SQLITE_THREADSAFE compile-time parameter to selected the threading mode. If no SQLITE_THREADSAFE compile-time parameter is present, then serialized mode is used. This can be made explicit with -DSQLITE_THREADSAFE=1.

With -DSQLITE_THREADSAFE=0 the threading mode is single-thread.

With -DSQLITE_THREADSAFE=2 the threading mode is multi-thread.

tar xf sqlite-autoconf-3210000.tar.gz
cd sqlite-autoconf-3210000
CFLAGS="-Os -DSQLITE_THREADSAFE=2" ./configure
make
make install

3:测试使用。

安装之后,建议重启系统,然后查看安装版本:

[root@localhost ~]# sqlite3 --version
3.21.0 2017-10-24 18:55:49 1a584e499906b5c87ec7d43d4abce641fdf017c42125b083109bc77c4de48827

说明安装成功。

下面再验证下编译参数:

输入命令sqlite3回车,进入sqlite3命令交互:

[root@localhost ~]# sqlite3 
SQLite version 3.21.0 2017-10-24 18:55:49
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> pragma compile_options;
COMPILER=gcc-4.8.2
ENABLE_DBSTAT_VTAB
ENABLE_FTS3
ENABLE_RTREE
ENABLE_STMTVTAB
THREADSAFE=2
sqlite> .quit

下面我们通过C++代码进行SQLite 3接口调用。

 

进行调用前,首先我们要确保系统可以访问到SQLite 3的动态链接库【主要原因是libsqlite默认将库文件安装在/usr/local/lib/目录下,系统的动态链接库是不访问这个路径的】。我们进行SQLite 3的动态链接库拷贝,将其拷贝至/usr/lib64/目录中:

cd /usr/local/lib/
cp libsqlite3.* /usr/lib64/
ldconfig

然后我们就可以写程序进行SQLite 3的API接口调用了。

 

示例程序:输出SQLite 3是否是线程安全的

testsqlite3.cpp

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

int main(int argc, char **argv){
	printf("SQLite3 threadsafe %d", sqlite3_threadsafe());
	return 0;
}

编译执行:

[root@localhost ~]# gcc testsqlite3.cpp -lpthread -ldl -lsqlite3 -o testsqlite3
[root@localhost ~]# ./testsqlite3                                              
SQLite3 threadsafe 2

参考资源:

Install Python and Sqlite from Source

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: 【原创】CentOS 6.5编译安装SQLite 3以及C++调用SQLite 3

文章的脚注信息由WordPress的wp-posturl插件自动生成



|2|left
打赏

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: