源码编译
下载源码
git clone https://github.com/openssl/openssl.git
如果打不开可以试试:
git clone git@gitee.com:epson/openssl.git
安装 Perl
按照作者建议的建议使用 Strawberry Perl,直接官网下载安装就好,免费。
加入环境变量,一般安装完会自动加入。
测试下安装成功
安装 NASM
加入环境变量
打开控制台
根据需要编译的平台选择相应的控制台,64位的选择x64,32位的选择x86
配置
perl Configure VC-WIN64A no-asm --debug --prefix=E:\Common\OpenSSL --openssldir=E:\Common\SSL
可查看openssl文件夹的 INSTALL.md
32位:VC-WIN32
64位:VC-WIN64A
不使用汇编代码:no-asm
Debug:--debug
Release:--release(默认)
最后安装的目录:--prefix=E:\Common\OpenSSL
一些配置说明文件存放目录:--openssldir=E:\Common\SSL
编译
nmake
大概30分钟左右,没有提示错误就是成功了。
继续
nmake test
大概40分钟左右,Result: Pass 就是成功了
生成安装
nmake install
成功
需要用到的头文件
lib文件
因为是编译的动态库,所以还有dll文件
注意需要添加包含目录
简单测试
#include <iostream>
#include <openssl/evp.h>
#ifndef _DEBUG
#ifdef _WIN64
#pragma comment (lib,"lib/x64/Release/libcrypto.lib")
#pragma comment (lib,"lib/x64/Release/libssl.lib")
#else
#pragma comment (lib,"lib/x86/Release/libcrypto.lib")
#pragma comment (lib,"lib/x86/Release/libssl.lib")
#endif // _WIN64
#else
#ifdef _WIN64
#pragma comment (lib,"lib/x64/Debug/libcrypto.lib")
#pragma comment (lib,"lib/x64/Debug/libssl.lib")
#else
#pragma comment (lib,"lib/x86/Debug/libcrypto.lib")
#pragma comment (lib,"lib/x86/Debug/libssl.lib")
#endif // _WIN64
#endif
int main()
{
const char* src = "Test OpenSSL MD5!";
unsigned char dst[0x10] = { 0 };
unsigned int dst_len = 0x10;
size_t src_len = strlen(src);
EVP_MD_CTX *ctx;
ctx = EVP_MD_CTX_new();
EVP_MD_CTX_init(ctx);
EVP_DigestInit(ctx, EVP_md5());
if (EVP_DigestUpdate(ctx, src, src_len))
{
if (EVP_DigestFinal(ctx, dst, &dst_len))
{
EVP_MD_CTX_free(ctx);
}
}
}
运行结果:
关于版本
这里从 git 拉下来的是master分支,最新3.0版。和之前1.x.x版本差别很大。
比如编译1.0.2k版本
直接再openssl官网上下载源码
解压后,使用管理员身份打开 vs 控制台
#64位debug静态库
perl Configure debug-VC-WIN64A no-asm --prefix=E:\OpenSSL --openssldir=E:\SSL
ms\do_win64a.bat
nmake -f ms\nt.mak
nmake -f ms\nt.mak install
#64位release静态库
perl Configure VC-WIN64A no-asm --prefix=E:\OpenSSL --openssldir=E:\SSL
ms\do_win64a.bat
nmake -f ms\nt.mak
nmake -f ms\nt.mak install
#64位debug动态库
perl Configure debug-VC-WIN64A no-asm --prefix=E:\OpenSSL --openssldir=E:\SSL
ms\do_win64a.bat
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak install
#64位release动态库
perl Configure VC-WIN64A no-asm --prefix=E:\OpenSSL --openssldir=E:\SSL
ms\do_win64a.bat
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak install
#32位debug静态库
perl Configure debug-VC-WIN32 no-asm --prefix=E:\OpenSSL --openssldir=E:\SSL
ms\do_ms.bat
nmake -f ms\nt.mak
nmake -f ms\nt.mak install
#32位release静态库
perl Configure VC-WIN32 no-asm --prefix=E:\OpenSSL --openssldir=E:\SSL
ms\do_ms.bat
nmake -f ms\nt.mak
nmake -f ms\nt.mak install
#32位debug动态库
perl Configure debug-VC-WIN32 no-asm --prefix=E:\OpenSSL --openssldir=E:\SSL
ms\do_ms.bat
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak install
#32位release动态库
perl Configure VC-WIN32 no-asm --prefix=E:\OpenSSL --openssldir=E:\SSL
ms\do_ms.bat
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak install
参考
Openssl 3.0安装流程——Windows平台,VS2019,Strawberryperl_Original 博客空间-CSDN博客