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

news2024/12/22 2:52:13

不要纠结,直接选择用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
  1. 关键步骤:在开始菜单中,找到【VS2015 x64 本机工具命令提示符】,使用管理员权限运行,打开cmd界面。
    在这里插入图片描述
  2. 关键步骤:在cmd,切记,这是在上一步中,用管理员身份打开的cmd中操作在这里插入图片描述
  3. 关键步骤:用perl编译openssl静态库,no-shared 表示编译静态库,VC-WIN64A 是x64,之后就是漫长的编译等待。
    在这里插入图片描述5. openssl没有指定生成目录,我这边默认是生成到 【C:\Program Files\OpenSSL】在这里插入图片描述在这里插入图片描述在这里插入图片描述
  4. 把生成的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】
    在这里插入图片描述在这里插入图片描述
  5. 关键步骤
一些可能用到的语句,可以先忽略
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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2263546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

汽车供应链 “剧变”开始,“智能感知潜在龙头”诞生

智能汽车产业链“剧变”已经开启,智能感知软硬件能力的权重正在不断被放大。 比如满足高阶泊车的第二代AK2超声波传感器、满足人机共驾场景需求的电子外后视镜(CMS)、iTOF 3D成像视觉感知(用于舱内监控)等新产品&…

Python+OpenCV系列:AI看图识人、识车、识万物

在人工智能风靡全球的今天,用 Python 和 OpenCV 结合机器学习实现物体识别,不仅是酷炫技能,更是掌握未来的敲门砖。本篇博文手把手教你如何通过摄像头或图片输入,识别人、动物、车辆及其他物品,让你的程序瞬间具备 AI …

JVM 详解

一. JVM 内存区域的划分 1. 程序计数器 程序计数器是JVM中一块比较小的空间, 它保存下一条要执行的指令的地址. [注]: 与CPU的程序计数器不同, 这里的下一条指令不是二进制的机器语言, 而是Java字节码. 2. 栈 保存方法中的局部变量, 方法的形参, 方法之间的调用关系. 栈又…

C# opencvsharp 流程化-脚本化-(2)ROI

ROI ROI也是经常需要使用的方法。特别是在图像编辑中。ROI又称感兴趣的区域,但是图像是矩阵是矩形的,感兴趣的是乱八七糟的,所以还有一个Mask需要了解一下的。 public class RoiStep : IImageProcessingStep{public ImageProcessingStepType…

wazuh-modules-sca-scan

sca模块主函数wm_sca_main -> wm_sca_start 检查policy文件中的每一个项目wm_sca_check_policy static int wm_sca_check_policy(const cJSON * const policy, const cJSON * const checks, OSHash *global_check_list) {if(!policy) {return 1;}const cJSON * const id c…

uniapp 自定义图标03

插入工程,修改名称文件内容 编译运行

在Windows本地用网页查看编辑服务器上的 jupyter notebook

​ Motivation: jupyter notebook 可以存中间变量,方便我调整代码,但是怎么用服务器的GPU并在网页上查看编辑呢? 参考 https://zhuanlan.zhihu.com/p/440080687 服务端(Ubuntu): 激活环境 source activate my_env安装notebook …

【YOLO 项目实战】(11)YOLO8 数据集与模型训练

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【YOLO 项目实战】(1)YOLO5 环境配置与检测 【YOLO 项目实战】(10)YOLO8 环境配置与推理检测 【YOLO 项目实战】(11)YOLO8 数据…

Ubuntu22.04上安装esp-idf

一、安装准备# 建议使用Ubuntu 20.04 或 Ubuntu 22.04 操作系统 为了在 Ubuntu 22.04 中使用 esp-idf,需要安装一些依赖包 sudo apt-get install git wget flex bison gperf python3\python3-pip python3-venv cmake ninja-build ccache\libffi-dev libssl-dev dfu…

nginx-虚拟主机配置笔记

目录 nginx的安装可以查看nginx安装https://blog.csdn.net/m0_68472908/article/details/144609023?spm1001.2014.3001.5501 一、 基于域名 二、 基于IP 三、 基于端口 nginx的安装可以查看nginx安装https://blog.csdn.net/m0_68472908/article/details/144609023?spm100…

AlipayHK支付宝HK接入-商户收款(PHP)

一打开支付宝国际版 二、点开商户服务 三、下载源码

Soul Android端稳定性背后的那些事

前言:移动应用的稳定性对于用户体验和产品商业价值都有着至关重要的作用。应用崩溃会导致关键业务中断、用户留存率下降、品牌口碑变差、生命周期价值下降等影响,甚至会导致用户流失。因此,稳定性是APP质量构建体系中最基本和最关键的一环。当…

深度学习模型 DeepSeek-VL2 及其消费级显卡需求分析

DeepSeek-VL2 是由 DeepSeek 团队开发的一款先进的视觉语言模型,采用了混合专家(MoE)架构,旨在提升多模态理解能力。该模型包括三个版本:DeepSeek-VL2-Tiny、DeepSeek-VL2-Small 和 DeepSeek-VL2。每个版本具有不同的模…

首批|云轴科技ZStack成为开放智算产业联盟首批会员单位

近日 ,在Linux基金会AI & Data及中国开源软件推进联盟的指导之下,开放智算产业联盟成立大会在北京成功召开。在大会上,联盟首次公布了组织架构并颁发了首批会员单位证书。凭借ZStack AIOS平台智塔和在智算领域的技术创新,云轴…

word实现两栏格式公式居中,编号右对齐

1、确定分栏的宽度 选定一段文字 点击分栏:如本文的宽度为22.08字符 2、将公式设置为 两端对齐,首行无缩进。 将光标放在 公式前面 点击 格式-->段落-->制表位 在“制表位位置”输入-->11.04字符(22.08/211.04字符)&…

go语言zero框架中config读取不到.env文件问题排查与解决方案

在Go语言中,如果你使用.env文件来存储环境变量,通常会用到一些第三方库,例如github.com/joho/godotenv,它可以帮助我们从.env文件中读取环境变量。然而,在使用godotenv时,可能会遇到一些问题,导…

修改vscode设置的原理

转载请标明出处:小帆的帆的专栏 修改vscode设置 首先需要理解的是,vscode的系统设置和插件设置都是通过settings.json文件管理的。 vscode中有三个Settings,三个Settings分别对应三个settings.json文件 Default Settings:默认…

Qt之修改窗口标题、图标以及自定义标题栏(九)

Qt开发 系列文章 - titles-icons-titlebars(九) 目录 前言 一、修改标题 二、添加图标 三、更换标题栏 1.效果演示 2.创建标题栏类 3.定义相关函数 4.使用标题栏类 总结 前言 在我们利用Qt设计软件时,经常需要修改窗口标题、更改软…

环境变量的知识

目录 1. 环境变量的概念 2. 命令行参数 2.1 2.2 创建 code.c 文件 2.3 对比 ./code 执行和直接 code 执行 2.4 怎么可以不带 ./ 2.4.1 把我们的二进制文件拷贝到 usr/bin 路径下,也不用带 ./ 了 2.4.2 把我们自己的路径添加到环境变量里 3. 认识PATH 3.…

【时时三省】(C语言基础)通讯录1

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 通讯录 1 .通讯录中能够存放1000个人的信息 每个人的信息: 名字年龄性别电话地址 2、增加人的信息 3、删除指定人的信息 4、修改指定人的信息 5,查找指定人的信…