Windows10 下通过 Visual Studio2022 编译 openssl 3.4 + POCO 1.14.1

devtools/2024/12/30 1:17:17/

Windows10 下通过 Visual Studio2022 编译 POCO库

  • 1 POCO库简介
  • 2 环境准备
    • 2.1 VS Studio 2022 安装
    • 2.2 openssl 安装
  • 3 编译 POCO 1.14.1
    • 3.1 下载源码
    • 3.2 修改编译配置
      • 3.2.1 修改 poco\Crypto 工程 引用 openssl 的配置
      • 3.2.2 修改 poco\NetSSL_OpenSSL 工程 引用 openssl 的配置
      • 3.2.3 修改 poco\DNSSD\Bonjour 工程
    • 3.3 使用 build_vs170.cmd 编译
    • 3.4 XXX_vs170.sln 单个编译

1 POCO库简介

POCO 是一个C++的开源库集。同一般的C++库相比,POCO的特点是提供了整一个应用框架。如果要做C++程序应用框架的快速开发,STL + boost + Poco + Qt + Mysql 是个不错的选择。
POCO库结构如下:
在这里插入图片描述)

2 环境准备

2.1 VS Studio 2022 安装

下载地址:https://learn.microsoft.com/zh-cn/visualstudio/releases/2022/release-notes
我下载的是企业版,安装就不多说了。

2.2 openssl 安装

  • 编译 openssl 安装
    参考《Windows10 下通过 Visual Studio2022 编译 openssl 3.4》

  • 下载安装
    下载地址:https://slproweb.com/products/Win32OpenSSL.html,当前最新版本是v3.4.0,下载Win64即可。
    在这里插入图片描述
    我使用的编译的方式,记住两个路径,后面需要使用。

  • 头文件路径:

    E:\work\Source\Repos\wanjiaStation\WJSocket\openssl\bin\x64\debug\include

  • 库文件路径:

    E:\work\Source\Repos\wanjiaStation\WJSocket\openssl\bin\x64\debug\lib

3 编译 POCO 1.14.1

3.1 下载源码

Githup下载地址:

https://github.com/pocoproject/poco

git clone https://github.com/pocoproject/poco
git checkout remotes/origin/poco-1.14.1 -b proc-1.14.1j

3.2 修改编译配置

我们来看源码目录 poco 下的这几个文件:
在这里插入图片描述
修改 components 文件,去掉没有安装的模块:
去掉 MYSQL 及 postgreSQL,默认会编译没有这两个没有安装的模块。

网上介绍的修改 buildwin.cmd 中设置 OPENSSL 的方式没有成功,我采用直接在项目工程属性中设置的方式。

3.2.1 修改 poco\Crypto 工程 引用 openssl 的配置

  • 配置 openssl 附加包含目录:
C:\work\Source\Repos\WebSocket\openssl\bin\x64\debug\include

在这里插入图片描述

  • 配置 openssl 附加库目录:
C:\work\Source\Repos\WebSocket\openssl\bin\x64\debug\lib

在这里插入图片描述

  • 增加附加依赖项:
libcrypto.lib

在这里插入图片描述

3.2.2 修改 poco\NetSSL_OpenSSL 工程 引用 openssl 的配置

修改 poco\NetSSL_OpenSSL 工程 引用 openssl 的配置,头文件和库目录和 Crypto 一样设置。

  • 增加附加依赖项:
libssl.lib;libcrypto.lib;

在这里插入图片描述

-增加预处理器定义:

_CRT_SECURE_NO_WARNINGS

在这里插入图片描述

3.2.3 修改 poco\DNSSD\Bonjour 工程

无法打开包括文件: “dns_sd.h”: No such file or directory

bonjour 是苹果公司发布的一个基于ZEROCONF工作组(IETF下属小组)的工作,用于实现零配置网络联网的解决方案。
我们可以去官网了解 Bonjour - Apple Developer:https://developer.apple.com/bonjour/

下载 Bonjour SDK for Windows,地址:https://developer.apple.com/download/all/?q=Bonjour%20SDK%20for%20Windows
安装(Bonjour服务启动,依赖于mDNSResponder.exe进程)

附:源码地址:https://opensource.apple.com/tarballs/mDNSResponder/

如果不需要使用 poco\DNSSD,我们可以像MySQL 一样,在 components 文件删除就不会编译以下项目了:

DNSSD
DNSSD/Avahi
DNSSD/Bonjour

3.3 使用 build_vs170.cmd 编译


    http://www.ppmy.cn/devtools/145170.html

    相关文章

    WebAPI编程(第一天,第二天)

    WebAPI编程(第一天,第二天) day01 - Web APIs 1.1. Web API介绍 1.1.1 API的概念1.1.2 Web API的概念1.1.3 API 和 Web API 总结 1.2. DOM 介绍 1.2.1 什么是DOM1.2.2. DOM树 1.3. 获取元素 1.3.1. 根据ID获取1.3.2. 根据标签名获取元素1.3.…

    网络安全攻防演练中的常见计策

    大家觉得有意义记得关注和点赞!!! 引言 在网络安全攻防演练里面,用于分析攻击者动机和行为的,国外的有基于攻击链分析的模型(如Cyber Kill Chain和ATT&CK)和基于威胁行为的模型&#xff08…

    ArcGIS Pro 3.4新功能3:空间统计新特性,基于森林和增强分类与回归,过滤空间自相关

    目录 应用 1:它是相关性还是托布勒第一定律? 应用 2:将空间带入非空间模型 结论 在 ArcGIS Pro 3.4 中,我们在新的空间组件实用程序(Moran 特征向量)工具集中发布了一个新工具 - 从字段过滤空间自相关。…

    小白考研历程:跌跌撞撞,起起伏伏,五个月备战历程!!!

    说真的,7月前我都没有想过我自己要考研,属于前期都是在大学中准备比赛,证书,直到参加蓝桥杯获得国赛三等奖,我问自己,再继续参加比赛吗?已经没有并肩同行的同学(他们都准备考公考研啦…

    【HTML】Shadow DOM

    Shadow DOM 允许将隐藏的 DOM 树附加到常规的 DOM 树中。它以 shadow root 节点为起始根节点,在这个根节点的下方,可以是任意元素,和普通的 DOM 元素一样。这样,你就可以创建一个独立的 DOM 子树,它与主文档隔离开来&a…

    基于图注意力网络的两阶段图匹配点云配准方法

    Two-stage graph matching point cloud registration method based on graph attention network— 基于图注意力网络的两阶段图匹配点云配准方法 从两阶段点云配准方法中找一些图匹配的一些灵感。文章提出了两阶段图匹配点云配准网络(TSGM-Net) TSGM-Ne…

    贪心算法解决用最少数量的箭引爆气球问题

    代码随想录链接:代码随想录 思路: 要想射出的弓箭最少,需要统计重叠的气球的数量,如果多个气球重叠的话使用一支箭即可 首先对数组中每个子数组进行排序,排序的规则是它们的第一个元素从小到大的顺序 从第一个子数组开始遍历数组中的全部…

    IntelliJ IDEA中设置激活的profile

    在IntelliJ IDEA中设置激活的profile,可以通过以下步骤进行: 通过Run/Debug Configurations设置 打开Run/Debug Configurations对话框: 在IDEA的顶部菜单栏中,选择“Run”菜单,然后点击“Edit Configurations...”或者…