本文主要是介绍sqlcipher离线编译,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
编译tcl
# tar -xvzf tcl8.6.9-src.tar.gz
# cd tcl8.69/unix
# ./configure --prefix=/user/local/tcl
# make
# sudo make install
# sudo ln -s /user/local/tcl/bin/tclsh8.6 /bin/tclsh
编译sqlite3
SQLite不使用Git版本控制系统。SQLite使用Fossil作为替代 make clean
1,下载SQLite源代码sqlite-3.6.23.1.tar.gz
2,复制sqlite-3.6.23.1.tar.gz到linux上的/usr/src目录
3, 解压源代码 tar -xvzf sqlite-3.6.23.1.tar.gz
4,进入源代码目录 cd sqlite-3.6.23.1
5,配置编译与安装参数
./configure --prefix=/usr/local/sqlite
6,编译 make
7, 安装 make install
进入SQLite安装目录
cd /usr/local/sqlite/bin
安装好SQLite后,主要包括命令文件、头文件和库文件。
目录文件 说明
/usr/local/sqlite/bin 只有一个命令文件Sqlite
/usr/local/sqlite/include 包含sqlite3.h和sqlite3ext.h两个头文件
/usr/local/sqlite/lib 包含libsqlite3.so和libsqlite3.a等SQLite静态库和动态库文件
LD_LIBRARY_PATH: 动态库的查找路径
使用时将sqlite3命令文件和库文件路径导入到环境变量,可修改~/.bashrc文件或~/.bash_profile文件或/etc/profile文件。
$ vi ~/.bashrc // 修改配置文件,添加以下两行
复制代码 代码如下:
export PATH=/usr/local/sqlite/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/sqlite/lib:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=/usr/local/sqlite/include:$C_INCLUDE_PATH
##
source ~/.bashrc // 执行配置文件
C_INCLUDE_PATH、CPLUS_INCLUDE_PATH
openssh
https://www.openssl.org/source/
https://github.com/openssl/openssl
$ ./Configure --prefix=/usr/local/ssl --openssldir=/usr/local/ssl '-Wl,-rpath,$(LIBRPATH)'
https://github.com/openssl/openssl/blob/master/NOTES-UNIX.md
1. 安装activePerl,因为OPENSSL源码需要用到perl指令。(http://www.activestate.com/activeperl/downloads)
2. 下载openssl源码。(https://www.openssl.org/source/)
3. 下载MASM,因为需要对汇编语言编译。(http://www.microsoft.com/en-us/download/)
sqlcipher在linux上编译
编译sqlite,只需按照readme中的方法编译即可。
编译sqlcipher,在linux上测试,
只需配置configure时,增加SQLITE_HAS_CODEC和SQLITE_TEMP_STORE=2,就可以正常编译出有加密功能的sqlite3可执行文件
sqlcipher使用了openssl的加密算法,因此,需要下载编译openssl库文件
sqlcipher是sqlite3的加强版,提供加密。
也就是sqlite3的修改版,里面修改添加了代码,并以一些预编译宏来进行分支选路。
所有修改过的代码片段都包含在预编译宏SQLITE_HAS_CODEC保护下 SQLITE_TEMP_STORE 编译时参数是源代码中的宏定义(#define),其取值范围是0到3(缺省值为1)
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC"
sqlite-release/manifest', needed by `sqlite3.h'. Stop.
SQLITE_HAS_CODEC 和 SQLITE_TEMP_STORE=2
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto" --prefix=/usr/local/sqlcipher -L /usr/local/sqlite/include
$ ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto -L /usr/local/opt/openssl/lib" CPPFLAGS="-I/usr/local/opt/openssl/include"
$ ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto -L /usr/local/opt/openssl/lib" CPPFLAGS="-I/usr/local/opt/openssl/include"
$ make
$ sudo make install
验证和创建
验证sqlcipher
# sqlcipher
创建加密数据库
# sqlcipher test.db
参考
https://github.com/mackyle/sqlite
https://sqlite.org/src/dir?ci=trunk
https://repo.or.cz/sqlite.git
https://github.com/sqlcipher/sqlcipher
https://github.com/tcltk/tcl/archive/refs/tags/release.tar.gz
这篇关于sqlcipher离线编译的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!