Qt安装配置openssl——百度OCR依赖库

操作系统:Windows10
编译环境:MSVC2017(64bit)
开发环境:QT 5.10.0


百度OCR快速入门步骤
参考:https://ai.baidu.com/ai-doc/OCR/Kk3h7y7vq
1.在官方网站下载C++ SDK压缩包。
2.将下载的aip-cpp-sdk-version.zip解压, 其中文件为包含实现代码的头文件。
3.安装依赖库libcurl(需要支持https) openssl jsoncpp(>1.6.2版本,0.x版本将不被支持)。
4.编译工程时添加 C++11 支持 (gcc/clang 添加编译参数 -std=c++11), 添加第三方库链接参数 lcurl, lcrypto, ljsoncpp。
5.在源码中include ocr.h ,引入压缩包中的头文件以使用aip命名空间下的类和方法。


一、安装openssl

参考博客:[1]、 [2]、 [3]

1、下载openssl,我版本的是:

| 5229 | 2019-Dec-20 13:25:43 | openssl-1.0.2u.tar.gz (SHA256) (PGP sign) (SHA1) |

2、安装 ActivePerl,下载地址。先断网再打开.exe,因为他会自动检查更新,不翻墙会卡住

3、打开开始菜单,找到vs2017,编译64位,选择"适用于 VS 2017 的 x64 本机工具命令提示",编译32位,选择"适用于 VS 2017 的 x86 本机工具命令提示"
1.进入对应目录:

cd D:\openssl-1.0.2u

2.配置编译库类型:

perl Configure VC-WIN64A no-asm

编译32位debug版本:debug-VC-WIN32,编译32位release版本:VC-WIN32
编译64位debug版本:debug-VC-WIN64A,编译64位release版本:VC-WIN64A

3.创建64位makefile文件(32位:ms\do_ms.bat)

ms\do_win64a.bat

4.编译、测试、安装和清除编译(运行结果为:passed all tests 即编译成功)

动态库:
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak test
nmake -f ms\ntdll.mak install
nmake -f ms\ntdll.mak clean

静态库:
nmake -f ms\nt.mak
nmake -f ms\nt.mak test
nmake -f ms\nt.mak install
nmake -f ms\nt.mak clean

文件复制到了跟openssl-1.0.2u同一目录下的usr\local\ssl

二、Qt配置openssl

1、我将usr\local\ssl下的文件复制到D:\openssl

2、在Qt工程中,.pri文件添加:

INCLUDEPATH += D:\openssl\include
LIBS += D:\openssl\lib\libeay32.lib
LIBS += D:\openssl\lib\ssleay32.lib

3、测试代码
参考博客:https://blog.csdn.net/liang19890820/article/details/51611400

#include 
#include 
std::string sha256(const std::string str)
{
    char buf[2];
    unsigned char hash[SHA256_DIGEST_LENGTH];
    SHA256_CTX sha256;
    SHA256_Init(&sha256);
    SHA256_Update(&sha256, str.c_str(), str.size());
    SHA256_Final(hash, &sha256);
    std::string newString = "";
    for(int i = 0; i < SHA256_DIGEST_LENGTH; i++)
    {
        sprintf(buf,"%02x",hash[i]);
        newString = newString + buf;
    }
    return newString;
}
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    std::string str = "Hello World";
    qDebug() << QString::fromStdString(sha256(str));

    return a.exec();
}

输出:"a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e"

4、构建文件后,添加dll文件到生成文件对应的release里面(dll文件在编译成功的文件下的bin中)

你可能感兴趣的:(Qt安装配置openssl——百度OCR依赖库)