linux 编译sqlitecpp,【原创】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:下载源码;

4ba954d4736a1f88159c6b968657cb33.png

我们下载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

#include

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

参考资源:

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

|2|left

打赏

1b6439c6a040252321edad911c85491b.png微信扫一扫,打赏作者吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值