如何在 Windows 上构建 OpenSSL、zlib 和 cURL 库

 

如何在 Windows 上构建 OpenSSLzlib cURL

202263

https://developers.refinitiv.com/en/article-catalog/article/how-to-build-openssl–zlib–and-curl-libraries-on-windows

 

吉拉蓬瑟·普里潘维猜

开发者倡导者

OpenSSLzlib cURL 是开源计算机软件项目,分别用于保护计算机网络上的通信、压缩数据以及通过各种网络协议传输数据。这些项目由命令行工具、头文件和库组成。它们被许多系统、应用程序和库广泛使用,包括 Refinitiv Real-Time SDK C/C++。用户可以利用 Internet 上提供的 OpenSSLzlib cURL 库,或从源代码构建这些库的最新版本。

Refinitiv Real-Time SDK C/C++ 是一套现代开源 API,旨在通过重点关注易用性以及对广泛的 Refinitiv 和专有内容和服务的标准化访问来简化开发。它使用这些库连接到加密服务器或云端的 Refinitiv Real-Time Optimized

本文逐步演示如何在 Windows 计算机 (Windows 10) 上从源代码构建 OpenSSLzlib cURL 库。然后,它展示了如何在 Refinitiv Real-Time SDK C/C++ 中使用这些库。主题包括:

· 构建 OpenSSL

· 构建 zlib

· 构建 cURL

· 将库与 Refinitiv Real-Time SDK C/C++ 结合使用

先决条件

要执行本文中的步骤,您需要有一台安装了以下应用程序的 Windows 10 计算机。

1.    Microsoft Visual Studio使用 C++ 进行桌面开发(例如 Visual Studio 2019 2022

2.    Strawberry Perl适用于 Microsoft Windows perl 环境(构建 OpenSSL 所需)

3.    Netwide Assembler (NASM) x86 CPU 架构的汇编器(构建 OpenSSL 所需)

4.    解压工具,比如WinRAR

构建 OpenSSL

OpenSSL 是一个软件库,为保护计算机网络通信安全的应用程序实施 SSL TLS 协议。它被互联网服务器广泛使用,包括大多数 HTTPS 网站。它包含两个库:libssl libcryptolibcrypto 库提供了 libssl 使用的基本加密例程。

以下步骤显示如何在 Windows 10 计算机上从 OpenSSL 源包构建 OpenSSL 库和二进制文件。

1.下载并解压OpenSSL源码包

OpenSSL是开源的,源代码可以在OpenSSL官方网站(https://www.openssl.org)上获取。在撰写本文时,OpenSSL 软件包的当前版本是openssl-1.1.1oopenssl-3.0.3

我将下载openssl-1.1.1o软件包,但本文中提到的步骤也可以与openssl-3.0.3软件包一起使用。

首先,下载OpenSSL源码包(openssl-1.1.1o.tar.gz)并解压到本地目录,例如C:\local\src

2.配置包

要执行此步骤,必须将 Perl NASM 目录添加到Path环境变量中。

您可以在命令提示符下运行“ perl -v ”“ nasm -v ”来测试它。

perl -v

nasm -v

复制

从上一步开始,所有文件都被提取到openssl-1.1.1.o目录中。运行Visual Studio x64 Native Tools 命令提示符,然后将目录更改为C:\local\src\ openssl-1.1.1.o

然后,运行config命令配置OpenSSL源码包。 

perl Configure VC-WIN64A –prefix=c:\local\openssl1.1.1

我使用以下选项运行配置命令。

选项

描述

–prefix= c:\local\openssl1.1.1

安装目录树的顶部。OpenSSL 库将在此目录中创建 (c:\local\openssl1.1.1)

其他选项请参考OpenSSL源码包中的 INSTALL文件。

3. 构建 OpenSSL

运行nmake命令来构建 OpenSSL 库(libcrypto libssl)和 OpenSSL 二进制文件 (openssl) 

nmake

库将构建在顶级目录中,二进制文件将位于apps子目录中。

最后,运行“ nmake install ”命令在机器上安装OpenSSL 

nmake install

该命令将在–prefix选项指定的目录中安装所有 OpenSSL 组件C:\local\openssl1.1.1 )OpenSSL 配置文件位于C:\Program Files\Common Files\SSL目录中。

这些库位于C:\local\openssl1.1.1\libC:\local\openssl1.1.1\bin目录中,OpenSSL 二进制文件位于C:\local\openssl1.1.1\bin目录中。 

至此,OpenSSL 二进制文件和库文件已正确构建。 

构建 zlib

Zlib 是一个免费的通用无损数据压缩软件库,可在任何计算机硬件和软件平台上使用,包括 LinuxmacOS Windowszlib 数据格式本身可以跨平台移植。以下步骤演示了如何在 Windows 10 计算机上从 zlib 源包构建 zlib 库。

1.下载并解压zlib源码包

Zlib 是开源的,源代码可以在 zlib 官方网站(https://zlib.net/)上获取。在撰写本文时,zlib 软件包的当前版本是 zlib-1.2.12。下载zlib源码包(zlib-1.2.12.tar.gz)并解压到本地目录,例如C:\local\src

2. 构建 zlib

从上一步中,所有文件都被提取到zlib-1.2.12目录中。运行Visual Studio x64 本机工具命令提示符,然后将目录更改为C:\local\src\zlib-1.2.12

然后,运行nmake命令来构建 zlib 库。 

nmake /f win32/Makefile.msc

将在C:\local\src\zlib-1.2.12目录中创建以下文件。

· zlib.lib zlib静态库

· zlib.pdb zlib.lib的程序数据库       文件

· zdll.lib  zlib1.dll的导入库

· zlib1.dll zlib 共享库

· zlib1.pdb zlib1.dll的程序数据库       

3.复制zlib文件

在这一步中,zlib头文件和库文件将被复制到新的zlib文件夹中。首先,为 zlib 文件创建一个新文件夹,例如C:\local\zlib 

然后, zlib.hzconf.h文件从C:\local\src\zlib-1.2.12复制到C:\local\zlib\include 

最后,将zlib库文件从C:\local\src\zlib-1.2.12复制到C:\local\zlib\lib目录。

至此,zlib库文件就正确构建完成了。 

构建cURL

cURL 是一个计算机软件项目,提供用于使用各种网络协议传输数据的库和命令行工具。它在许多平台上的构建和工作方式都是相同的。cURL 支持 HTTPS,当指定 HTTPS 等安全协议时,默认执行 SSL 证书验证。它依赖 OpenSSL 库来执行 SSL 证书验证。

以下步骤展示了如何在 Windows 10 计算机上从 cURL 源包构建 cURL 库和 cURL 二进制文件。此外,cURL 库和 cURL 二进制文件将使用前面部分中创建的 zlib OpenSSL 库。

1.下载并解压cURL源码包

cURL 是开源的,源代码可以在 cURL 官网(https://curl.se/download.html)上获取。在撰写本文时,cURL 包的当前版本是curl-7.83.1

首先,下载cURL源码包(curl-7.83.1.tar.gz)并解压到本地目录,例如C:\local\src

2. 构建 cURL

从上一步中,所有文件都被提取到curl-7.83.1目录中。运行Visual Studio x64 Native Tools 命令提示符,然后将目录更改为C:\local\src\curl-7.83.1 \ winbuild

cURL 支持许多底层协议。我们可以在构建库时对其进行配置。以下部分演示了构建分别支持 Schannel OpenSSL cURL 库的方法。 

2.1 构建使用SchannelzlibcURL

Microsoft 安全通道 (Schannel) 是一个安全包,可促进在 Windows 平台上使用安全套接字层 (SSL) /或传输层安全性 (TLS) 加密。Schannel 将使用 Windows 证书存储中的证书。

运行以下nmake命令来构建 cURL 库以及使用 Schannel zlib cURL 二进制文件。 

nmake /f Makefile.vc mode=dll MACHINE=x64 WITH_ZLIB=dll ZLIB_PATH=C:\local\zlib复制

我使用以下选项运行nmake命令。

选项

描述

模式=dll

构建cURL动态库

机器=x64

目标架构(默认为x86

WITH_ZLIB=dll 

启用 zlib 支持、DLL 或静态

ZLIB_PATH=C:\local\zlib

zlib 的自定义路径 (C:\local\zlib)

cURL 文件构建在.\builds\libcurl-vc-x64-release-dll-zlib-dll-ipv6-sspi-schannel目录中。

cURL DLL 文件位于bin目录中。

2.2 构建使用OpenSSLzlibcURL

可以构建 cURL 以支持 OpenSSL。运行以下nmake命令来构建使用 OpenSSL zlib cURL 库和 cURL 二进制文件。

nmake /f Makefile.vc mode=dll MACHINE=x64 WITH_SSL=dll SSL_PATH=C:\local\openssl1.1.1 WITH_ZLIB=dll ZLIB_PATH=C:\local\zlib复制

我使用以下选项运行nmake命令。

选项

描述

模式=dll

构建cURL动态库

机器=x64

目标架构(默认为x86

WITH_SSL=dll

启用 OpenSSL 支持、DLL 或静态

SSL_PATH=C:\local\openssl1.1.1

OpenSSL 的自定义路径 (C:\local\openssl1.1.1)

WITH_ZLIB=dll 

启用 zlib 支持、DLL 或静态

ZLIB_PATH=C:\local\zlib

zlib 的自定义路径 (C:\local\zlib)

cURL 文件构建在 .\ builds\libcurl-vc-x64-release-dll-ssl-dll-zlib-dll-ipv6-sspi目录中。

cURL DLL 文件位于bin目录中。

其他选项请参考winbuild目录下的README.md文件。 

至此,cURL 二进制文件和库文件已正确构建。 

将库与 Refinitiv Real-Time SDK C/C++ 结合使用

OpenSSLzlib cURL 可与 Refinitiv Real-Time SDK C/C++ 应用程序结合使用,以连接到加密服务器或云端的 Refinitiv Real-Time OptimizedWindows 上的 Refinitiv Real-Time SDK C/C++ 使用支持 Schannel libcurl  

1. 将以下文件复制到 Refinitiv Real-Time SDK C/C++ 应用程序的当前目录。

· C:\local\zlib\lib\zlib1.dll

· C:\local\openssl1.1.1\bin\libcrypto-1_1-x64.dll

· C:\local\openssl1.1.1\bin\libssl-1_1-x64.dll

· C:\local\src\curl-7.83.1\builds\libcurl-vc-x64-release-dll-zlib-dll-ipv6-sspi-schannel\bin\libcurl.dll

2. 运行应用程序。该应用程序加载在工作目录中找到的 OpenSSLzlib cURL 库,然后连接到 Refinitiv Real-Time Optimized 上的加密服务器。

概括

OpenSSLzlib cURL 是开源且流行的软件项目,用于保护计算机网络上的通信、压缩数据以及通过各种网络协议传输数据。用户可以轻松地从项目的源代码构建二进制包。通过这种方法,用户可以获得最新版本的软件包。本文逐步演示如何在 Windows 10 计算机上从源代码构建 OpenSSLzlib curl 库。构建包有几个步骤。第一步是从项目官方网站下载源代码包。第二步是解压包。第三步是配置包,最后一步是构建包。结果包含可执行文件、开发库和头文件。

参考

1. 卷曲。和 卷曲。[在线] 网址:https://curl.se/ > [2022 5 3 日访问]

2.En.wikipedia.orgnd  cURL – 维基百科,免费的百科全书 [在线] 网址:https://en.wikipedia.org/wiki/CURL > [5 3 日访问

3.OpenSSL。和 OpenSSL[在线] 网址:https://www.openssl.org/ > [2022 5 3 日访问]

4.En.wikipedia.orgnd  OpenSSL – 维基百科。[在线] 网址:https://en.wikipedia.org/wiki/OpenSSL > [5 3 日访问

5.Developers.refinitiv.comnd  Refinitiv 实时 C++ SDK | 路孚特开发商。[在线] 网址:https://developers.refinitiv.com/en/api-catalog/refinitiv-real-time-opnsrc/rt-sdk-cc > [2022 5 3 日访问]

6.En.wikipedia.orgnd  zlib –维基百科 [在线] 网址:https://en.wikipedia.org/wiki/Zlib > [5 11 日访问

7.Zlib.netnd  zlib 主页。[在线] 网址:https://zlib.net/ > [访问日期:2022 5 11 ]

8. Bacon, M., nd 什么是 Microsoft SchannelMicrosoft 安全通道)?定义来自 WhatIs.com[在线]TechTarget。网址为:https://www.techtarget.com/searchsecurity/definition/Microsoft-Schannel-Microsoft-Secure-Channel > [2022 5 24 日访问]

 

 

您可能还喜欢...

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注