Windwos +vs 2022 编译openssl 1.0.2 库

csdn推荐

一 前言

先说 结论,编译64位报错,查了一圈没找到解决方案,最后换了32位的。

使用qt访问web接口,因为是https,没有openssl库会报错

    QNetworkReply* reply = qobject_cast(sender());
    if (reply)
    {
        if (reply->error() == QNetworkReply::NoError)
        {
            // 处理成功响应
            QByteArray responseData = reply->readAll();
            // 处理responseData
            ui->textEdit->append("data:" + QString::fromUtf8(responseData) + "n");
        }
        else
        {
            // 处理错误响应
            qDebug() << "Request Error: " <errorString();
            ui->textEdit->append("error:" + mReply->errorString());
        }
        reply->deleteLater();
    }

错误就是 error:Error creating SSL context ()

说明需要openssl

使用下面代码查看qt需要的库

QSslSocket::sslLibraryBuildVersionString()
ui->textEdit->append("lib v:" + QSslSocket::sslLibraryBuildVersionString());

如图

二准备工具

1、安装 perl

2、下载 openssl 1.0.2u

链接

3、 安装 NASM

测试命令

perl  -v
nasm --v

出错就用everything ,查找 nasm.exe 和 perl .exe的文件位置添加到用户环境变量中

三 开始编译

cmd 管理员进入 C:Program Files (x86)Microsoft Visual Studio 14.0VCbin(vs 版本不一样,可能路径不同) 运行 vcvars32.bat

在openssl代码下载后,解压,自己建一个文件夹作为输出,比如bin

cmd 窗口切换到代码路径下

挨个执行命令就行,注意改成自己的代码路径

perl Configure VC-WIN32 no-asm --prefix=D:sslopenssl-1.0.2uopenssl-1.0.2ubin
 
msdo_nasm
 
nmake -f msntdll.mak 
 
nmake -f msntdll.mak test 
 
nmake -f msntdll.mak install 
 
nmake -f msntdll.mak clean

期间可能会出现 ** fatal error U1077: “rc”: 返回代码“0x1”** 之类的错误,网上查的解决方案是,解决方法是查找 rc.exe ,用everything 查找最新的 rc.exe,加到环境变量里。原理没懂,反正解决了

四结果文件

就在bin目录下(自己建的输出目录)

五参考文章

解决rc,上方说的错误

虽然时间较久,参考意义比较大

文章来源:https://blog.csdn.net/GreedySnaker/article/details/139920931



微信扫描下方的二维码阅读本文

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容