windows openssl编译x64版libssl.lib,编译x64版本libcurl.lib,支持https,vs2015编译器

不要纠结,直接选择用perl编译!

告诫想要用弄成vs编译版的,暂时先别给自己增加麻烦

告诫,以下执行的每一步,都不要纠结

先安装环境

  1. nasm 64位版本 https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/win64/nasm-2.16.01-installer-x64.exe
  2. perl 64位版本
    我用的是 https://www.activestate.com/platform/supported-languages/perl/,
    也可以使用 https://strawberryperl.com/
  3. 我使用的是Windows VS2015编译器,编译器的安装就不多说了。

配置环境变量,也就是把perl和nasm的bin路径添加到环境变量path中。

在cmd中使用【perl -v】,可以验证perl是否安装成功

目标

  1. windows环境,vs2015编译器,x64,编译libcurl静态库。
  2. libcurl支持https

可能的疑问

nghttp2目录是干啥用的:用于支持http/2,如果不需要用到http/2,完全可以忽略,我在下文只会顺带提几句编译支持http/2的方法。

基础条件【磨刀不误砍柴工】

  1. 为了不会混乱,我就直接在桌面上创建了一个目录,存在相关代码和生成的库,基础路径【C:\Users\MR\Desktop\openssl_20241216】,每个人的电脑桌面路径不一样,不用纠结。openssl下载地址:https://openssl-library.org/source/,curl下载地址:https://github.com/curl/curl.git,这些地址可能会变,不用纠结,如果用不了,自己上网搜索就行。

  2. 以下是我的目录结构:curl目录是从git拉取curl代码的目录,curl_static可以忽视,我自己创建的用于存放即将生成的库,等会儿在编译的时候,会自动生成。deps目录,以及内部的子目录,先创建,不用问为什么。

编译openssl

  1. 下载源码,尽可能是最新版本的,因为低版本的源码编译出来的库,一些接口可能不支持。

    https://github.com/openssl/openssl

  2. 关键步骤:在开始菜单中,找到【VS2015 x64 本机工具命令提示符】,使用管理员权限运行,打开cmd界面。

  3. 关键步骤:在cmd,切记,这是在上一步中,用管理员身份打开的cmd中操作

  4. 关键步骤:用perl编译openssl静态库,no-shared 表示编译静态库,VC-WIN64A 是x64,之后就是漫长的编译等待。
    5. openssl没有指定生成目录,我这边默认是生成到 【C:\Program Files\OpenSSL】

  5. 把生成的openssl拷贝到deps下
    【C:\Program Files\OpenSSL\include\openssl】=》【C:\Users\MR\Desktop\openssl_20241216\deps\include】
    【"C:\Program Files\OpenSSL\lib\libcrypto.lib"】=》【C:\Users\MR\Desktop\openssl_20241216\deps\lib】
    【"C:\Program Files\OpenSSL\lib\libssl.lib"】=》【C:\Users\MR\Desktop\openssl_20241216\deps\lib】
    【"C:\Program Files\OpenSSL\lib\ossl_static.pdb"】=》【C:\Users\MR\Desktop\openssl_20241216\deps\lib】

  6. 关键步骤

一些可能用到的语句,可以先忽略
复制代码
nmake /f Makefile.vc mode=static VC=14 WITH_SSL=static WITH_DEVEL=C:\Users\MR\Desktop\libcurl\curl\deps DEBUG=yes ENABLE_IDN=no MACHINE=x64

perl Configure VC-WIN64A no-shared

dumpbin /headers openssl.exe

curl.exe -V

curl -I https://www.google.com

nmake clean
相关推荐
Jony_2 天前
高可用移动网络连接
网络协议
chilix2 天前
Linux 跨网段路由转发配置
网络协议
埃博拉酱3 天前
VS Code Remote SSH 连接 Windows 服务器卡在"下载 VS Code 服务器":prcdn DNS 解析失败的诊断与 BITS 断点续传
windows·ssh·visual studio code
唐宋元明清21883 天前
.NET 本地Db数据库-技术方案选型
windows·c#
加号33 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
tryCbest4 天前
Windows环境下配置pip镜像源
windows·pip
呉師傅4 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
gihigo19984 天前
基于TCP协议实现视频采集与通信
网络协议·tcp/ip·音视频
百事牛科技4 天前
保护文档安全:PDF限制功能详解与实操
windows·pdf
一个人旅程~4 天前
如何用命令行把win10/win11设置为长期暂停更新?
linux·windows·经验分享·电脑