vs2015编译openssl-1.0.2g源码

要求环境vs2015,perl以及openssl源码 https://www.openssl.org/source/old/1.0.2/openssl-1.0.2g.tar.gz

1.所有程序中打开vs2015命令行工具,编译32位用左图的,编译64位用右图的

2.切换到源码目录

3.执行perl配置命令,后面的安装路径根据自己需求改写

32位debug: perl Configure debug-VC-WIN32 no-asm --prefix="F:\learn\qt\openssl_build"

32位release: perl Configure VC-WIN32 no-asm --prefix="F:\learn\qt\openssl_build"

64位debug: perl Configure debug-VC-WIN64A no-asm --prefix="F:\learn\qt\openssl_build"

64位release: perl Configure VC-WIN64A no-asm --prefix="F:\learn\qt\openssl_build"

3.编译汇编程序

 32位: ms\do_nasm

64位:ms\do_win64a

4.编译动态库

nmake -f ms\ntdll.mak(编译静态库的命令是nmake -f ms\nt.mak)

5.测试

nmake -f ms\ntdll.mak test

6.安装

nmake -f ms\ntdll.mak install (编译静态库的命令是nmake -f ms\nt.mak install)

如果编译过程发生错误,可以使用如下命令做清理并重新编译

nmake -f ms\ntdll.mak clean

7.由于我编译的库是给qt测试用的,所以编写验证程序如下

pro文件

QT       += core gui
DESTDIR=../bin
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = openssl_test
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui
LIBS+=D:\sdk\32\openssl-1.0.2g\lib\libeay32.lib
LIBS+=D:\sdk\32\openssl-1.0.2g\lib\ssleay32.lib
INCLUDEPATH+=D:\sdk\32\openssl-1.0.2g\include

main文件编写

#include "mainwindow.h"
#include <QApplication>
#include <QDebug>
#include <openssl/ssl.h>
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[])
{
    QApplication a(argc, argv);
    std::string str = "Hello World";
    qDebug() << QString::fromStdString(sha256(str));
    return a.exec();
}

运行的后记得把库文件复制到运行目录下

最后运行结果如下:

结果完全正确,接下来就可以在其他项目使用编译好的openssl库了

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值