QT5 vcpkg编译sqlcipher插件

1 下载安装DB Browser for SQLite

下载,该工具可以打开程序创建的加密数据库,方便我们调试和检查。

2 通过vcpkg安装原版的sqlcipher

vcpkg search openssl
vcpkg install openssl --triplet=x64-windows

vcpkg search sqlcipher
vcpkg install sqlcipher --triplet=x64-windows

3 安装qsqlcipher-qt5

注意:为确保程序的可靠性,不要使用qsqlcipher-qt5源文件中的sqlcipher(qsqlcipher-qt5\3rdparty目录),使用通过vcpkg安装的sqlcipher。

git clone https://github.com/sjemens/qsqlcipher-qt5.git

修改qsqlcipher-qt5\qsqlcipher\qsqlcipher.pro中的!system-sqlcipher节点

修改前

system-sqlcipher {
    CONFIG += link_pkgconfig
    PKGCONFIG += sqlcipher
    # or if pkg-config is not available
    # INCLUDEPATH += /path/to/include/sqlcipher
    # LIBS += -L/path/to/lib/ -lsqlcipher -lcrypto
} else {
    include($$PWD/../3rdparty/sqlcipher.pri)
}

修改后

system-sqlcipher {
    #CONFIG += link_pkgconfig
    #PKGCONFIG += sqlcipher
    # or if pkg-config is not available
    # 注意E:/tools/vcpkg/installed/x64-windows/include改为您的vcpkg安装目录    
    INCLUDEPATH += E:/tools/vcpkg/installed/x64-windows/include
    LIBS += -LE:/tools/vcpkg/installed/x64-windows/lib -lsqlcipher -llibcrypto
} else {
    include($$PWD/../3rdparty/sqlcipher.pri)
}
  • 在开始编译之前必须设置qt的环境变量;
  • 命令在“开始-》Visual Studio 2019-》x64 Native Tools Command Prompt for VS 2019”中执行。
cd qsqlcipher-qt5
mkdir -p build && cd build
#表示使用系统自带的sqlcipher
qmake ../qsqlcipher.pro CONFIG+=system-sqlcipher
nmake
#自动安装至qmake对应的库所在的位置
#本例中QT位置为E:\Qt,版本5.15.1,安装了msvc2019 X64所需的库
#因此qmake位置为E:\Qt\5.15.1\msvc2019_64\bin
#对应的安装位置为E:\Qt\5.15.1\msvc2019_64\plugins\sqldrivers\qsqlcipher.dll和E:\Qt\5.15.1\msvc2019_64\plugins\sqldrivers\qsqlcipherd.dll
nmake install

5 使用qsqlcipher

documents

在执行任何操作之前先设置密码

void TestQSqlCipher::createDbWithPassphrase()
{
    QSqlQuery q(QSqlDatabase::database("db"));
    QStringList queries;
    // PRAGMA key='foobar'中的foobar就是密码,然后再执行您的sql
    queries << "PRAGMA key='foobar'"
            << "create table foo(bar integer)"
            << "insert into foo values (42)";
    for(const QString& qs : queries)
    {
        QVERIFY2(q.exec(qs), q.lastError().text().toLatin1().constData());
    }
}

编译成功运行前要先将vcpkg中的libcrypto-1_1-x64.dll和sqlcipher.dll复制至exe所在目录.

copy E:\tools\vcpkg\installed\x64-windows\bin\sqlcipher.dll D:\MyWork\202109\test\build\Release /Y
copy E:\tools\vcpkg\installed\x64-windows\bin\libcrypto-1_1-x64.dll D:\MyWork\202109\test\build\Release /Y
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kmblack1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值