从0开始完成ActiveMQ-cpp在windows_x86平台的编译(从编译openssl开始)

news/2025/12/4 14:49:48/文章来源:https://www.cnblogs.com/zhuxiaoxiao/p/19307481

简介

由于需要将一个项目从linux迁移到windows系统,在互联网没有找到【免费】且【免登录】的x64资源,openssl也已经找不到1.1.1w版本的下载资源了,所以我搭建了虚拟机环境,从编译openssl开始完成activemq的项目编译。

基础环境安装

编译环境介绍

电脑系统:win10 1909
cpu:ryzen 2700x

安装visual studio 2010

下载地址

ed2k://|file|cn_visual_studio_2010_professional_x86_dvd_532145.iso|2591844352|6001253431AFE573E4344F5A0B1D9CAC|/

安装

1. 双击打开:cn_visual_studio_2010_professional_x86_dvd_532145.iso
2. 双击steup.exe安装visual studio 2010

编译openssl1.1.1

安装strawberry-perl

下载地址

https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/SP_54201_64bit/strawberry-perl-5.42.0.1-64bit.msi

安装nasm

下载地址

https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win64/nasm-2.15.05-installer-x64.exe

本地编译openssl_1.1.1

下载openssl_1.1.1w源码

https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-1.1.1w.tar.gz

解压openssl_1.1.1源码

tar -xzvf openssl-1.1.1w.tar.gz

编译openssl_1.1.1w源码

1. 在开始菜单找到“Visual Studio x64 Win64 命令提示(2010)”,右键管理员打开
2. cd [openssl解压目录]  例如:cd C:\Users\admin123\Desktop\openssl-1.1.1w
3. perl configure VC-WIN64A --prefix="C:\Users\admin123\Desktop\openssl-1.1.1w\build_x64" no-asm   //如果是32位,则将VC-WIN64A改为VC-WIN32
4. nmake clean   //清理上次编译内容
5. nmake //编译openssl
6. nmake tests  //测试编译的openssl是否正常
7. 新建目录 C:\Users\admin123\Desktop\openssl-1.1.1w\build_x64
6. nmake install //安装到"C:\Users\admin123\Desktop\openssl-1.1.1w\build_x64"

本地编译apr库

下载地址

https://dlcdn.apache.org/apr/apr-1.7.6-win32-src.zip

解压源码

使用windows解压软件,解压apr-1.7.6-win32-src.zip

禁用ipv6

修改include\apr.hw文件,将#define APR_HAVE_IPV6改为0

开始编译

// x64 Release
nmake -f Makefile.win ARCH="x64 Release" PREFIX="C:\Users\admin123\Desktop\activemq\apr-1.7.6\build_x64_Release" buildall install clean
// ***************
// 本人仅完成了x64编译,以下命令遇到的问题自行处理
// ***************
// x64 Debug
nmake -f Makefile.win ARCH="x64 Debug" PREFIX="C:\Users\admin123\Desktop\activemq\apr-1.7.6\build_x64_Debug" buildall install clean
// Win32 Release
nmake -f Makefile.win ARCH="Win32 Release" PREFIX="C:\Users\admin123\Desktop\activemq\apr-1.7.6\build_win32_Release" buildall install clean
// Win32 Debug
nmake -f Makefile.win ARCH="Win32 Debug" PREFIX="C:\Users\admin123\Desktop\activemq\apr-1.7.6\build_win32_Debug" buildall install clean// 示例:编译并运行测试,仅支持debug模式
nmake -f Makefile.win ARCH="x64 Debug" PREFIX="C:\Users\admin123\Desktop\activemq\apr-1.7.6\build_x64" buildall checkall install clean

编译apriconv库

下载地址

https://dlcdn.apache.org//apr/apr-iconv-1.2.2-win32-src.zip

解压源码

使用windows解压软件,解压apr-1.7.6-win32-src.zip

环境准备

1.使用visual studio 2010打开apriconv.dsw文件
2.在apriconv项目右键“属性”
3.在“配置属性”->“VC++目录”->“包含目录”中设置apr库头文件的路径
4.在“配置属性”->“VC++目录”->“库目录”中设置apr库文件的路径
// 下面这个是编译出dll必须的的,仅编译lib可以忽略
5.在“配置属性”->“链接器”->“输入”->“附加依赖项”中加入“libapr-1.lib”

编译lib

1.选择Release和x64,开始编译window_x64_release架构的lib库
2.输出目录“x64”

编译dll

1.在apriconv项目右键”属性“
2.将“配置属性”->“常规”中的“目标文件扩展名”和“配置类型”改为dll
3.选择Release和x64,开始编译window_x64_release架构的dll库
2.输出目录“x64”

编译aprutil库

下载地址

https://dlcdn.apache.org//apr/apr-util-1.6.3-win32-src.zip

解压源码

使用windows解压软件,解压apr-util-1.6.3-win32-src.zip

环境准备

安装expat组件

说明:此组件aprutil项目有依赖

下载地址

// 32位
https://github.com/libexpat/libexpat/releases/download/R_2_7_3/expat-win32bin-2.7.3.zip
// 64位
https://github.com/libexpat/libexpat/releases/download/R_2_7_3/expat-win64bin-2.7.3.zip

解压zip

使用windows解压软件,解压expat-win64bin-2.7.3.zip

目录结构准备

// 备注:以下这么改是因为Makefile.win中对相关项目路径进行了指定
1.将apr库的源码目录更名为apr
2.将apriconv库的源码目录更名为apr-iconv
3.将aprutil库的源码目录更名为apr-util// 备注:这个没有强制要求
4.在Source目录新建目录expat,在expat目录中新增子目录include
5.将expat-win64bin-2.7.3.zip中的Source\lib目录内容复制到include目录中
6.将expat-win64bin-2.7.3.zip中的Bin目录内容复制到expat中层级结构如下:
Source/
├─apr/
├─apr-iconv/
├─apr-util/
└─expat/└─include/

在visual studio 2010中打开项目

使用visual studio 2010打开目录中的aprutil.dsw文件

配置apr_crypto_openssl项目依赖

1.在“配置属性”->“VC++目录”->“包含目录”中设置openssl库头文件的路径(openssl-1.1.1w\build_x64\include)
2.在“配置属性”->“VC++目录”->“库目录”中设置open库文件的路径(openssl-1.1.1w\build_x64\lib)
// 在ssl_1.1.1版本中,ssl的库改名了,需要手动调整
3.在“配置属性”->“链接器”->“输入”->“附加依赖项”中添加“libcrypto.lib”和“libssl.lib”
4.在“配置属性”->“链接器”->“输入”->“附加依赖项”中删除“libeay32.lib”和“ssleay32.lib”

配置aprutil项目依赖

// 配置apr库路径
1.在“配置属性”->“VC++目录”->“库目录”中设置apr库文件的路径(apr/x64)
// 配置apr-iconv库路径
2.在“配置属性”->“VC++目录”->“库目录”中设置apriconv库文件的路径(apr-iconv/x64)
// 配置expat库路径
3.在“配置属性”->“VC++目录”->“包含目录”中设置expat库头文件的路径(Source/expat/include)
4.在“配置属性”->“VC++目录”->“库目录”中设置expat库文件的路径(Source/expat)
// 编译dll时,增加明确依赖项,lib可以忽略
5.在“配置属性”->“链接器”->“输入”->“附加依赖项”中添加库“libapr-1.lib、libexpat.lib、apriconv-1.lib、wldap32.lib”

开始编译

在visual studio 2010中,选择x64_Release架构,开始编译

编译activeMQ库

下载地址

https://dlcdn.apache.org/activemq/activemq-cpp/3.9.5/activemq-cpp-library-3.9.5-src.zip

解压源码

使用windows解压软件,解压activemq-cpp-library-3.9.5-src.zip

环境准备

1.使用visual studio 2010打开vs2010-build/activemq-cpp.sln
2.在“配置属性”->“VC++目录”->“包含目录”添加apr、apriconv、aprutil、openssl头文件所在目录
2.在“配置属性”->“VC++目录”->“库目录”添加apr、apriconv、aprutil、openssl库文件所在目录
4.在“配置属性”->“链接器”->“输入”->“附加依赖项”中添加配置“libapr-1.lib;apriconv-1.lib;aprutil-1.lib;ws2_32.lib;”

开始编译

1.在visual studio 2010中,选择x64_Release开始编译

结束语

从创建虚拟机到最终完成x64_release版本的activemq-cpp编译,总计耗时3天。
尝试使用默认配置编译apr库,但是没有成功,所以屏蔽了ipv6功能。

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

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

相关文章

Spring配置接口WebMvcConfigurer

一、概述 WebMvcConfigurer是SpringMVC提供的一个配置回调接口,它定义了一系列用于自定义SpringMVC行为的方法,只需创建一个配置类实现该接口,并按需重写方法,即可轻松实现URL映射、拦截器注册、跨域配置等功能,无…

AI+安全:深信服以技术革新重塑网络安全新范式

在AI技术席卷各行各业的今天,深信服率先将AI大模型深度融入网络安全领域,打造出独具特色的“AI+安全”战略,展现出显著的技术优势和市场竞争力。 技术领先:安全GPT垂域大模型实现突破性效果 深信服自主研发的安全G…

WattToolkit访问GitHub代码推拉

WattToolkit访问GitHub代码推拉 环境:windows 11 64位中文家庭版。 Watt Tolkit 代理工具。 Visual studio 2022说明 众所周知的原因,从github上同步代码,有时候会失败,网络通信不上。 找到了Watt Tolkit 代理工具…

2025年内磁喇叭可靠供应商TOP5权威推荐:看哪家内磁喇叭

在5G、AI与物联网技术深度融合的背景下,电声元件作为智能设备的听觉神经,市场需求持续攀升。2024年全球微型电声元件市场规模突破600亿美元,年增速达18%,但行业中32%的投诉集中在漏磁干扰、音质失真、交付不稳定三…

Tampermonkey (油猴/篡改猴)下载安装教程

介绍一下 目录分为三种: 1、浏览器原版,官方直接可以安装的,什么功能都没有通过浏览器插件安装插件到浏览器中实现功能; 2、浏览器插件集成版,油猴等一些常用插件都集成在里面了,不需要自己再安装,适合小白; 3…

基于5G下行信号的模糊函数分析matlab仿真,对比速度模糊函数和距离模糊函数

1.引言模糊函数(Ambiguity Function, AF)是信号处理领域用于分析信号时频分辨能力的核心工具,在5G通信中,下行信号主要采用正交频分复用(OFDM)调制技术,其时频结构与传统单载波信号有显著差异,需针对OFDM信号特…

2025年防静电地坪公司权威推荐榜单:PVC防静电地板/聚氨酯防静电自流平地坪/NFJCC不发火防静电防爆地坪厂家精选

在高端电子制造、精密仪器、数据中心及医药化工等对生产环境有严苛要求的领域,防静电地坪已从一项功能性需求,升级为保障生产安全、产品良率与数据安全的核心基础设施。一个合格的防静电地坪系统,其表面电阻与体积电…

2025年12月长租公寓排名:十大权威榜单最新发布

2025年12月长租公寓排名:十大权威榜单最新发布在当今住房租赁市场,租客们面临着诸多困扰。他们在“品牌公寓”“中介租房”“个人房源”等众多选择中徘徊,租房过程繁琐,不仅耗费大量时间和精力,还常常遇到房屋质量…

服务专业经验丰富:申请指南推荐博士留学中介

在博士留学申请这条充满挑战的道路上,选择一家专业靠谱的留学中介至关重要。优质的中介能凭借专业团队、丰富经验和全方位服务,为申请者铺就通往名校的捷径。下面为大家盘点十大博士留学中介,结合其核心业务表现进行…

2025年重庆微信小程序怎么推广公司权威推荐榜单:网站定制开发‌/朋友圈广告计费方式‌/学校怎么投朋友圈广告‌源头公司精选

在移动互联网营销时代,微信小程序已成为连接企业与用户的关键桥梁。然而,上线后的小程序若无有效推广,极易在数字海洋中被淹没。数据显示,约75%的小程序用户访问量依赖于外部引流。因此,选择一家具备精准投放能力…

2025年四诊仪直销厂家权威推荐榜单:体质辨识仪‌/经络仪‌/红外偏振光治疗仪‌源头厂家精选

在人工智能技术深度赋能传统医学的时代浪潮下,中医诊疗设备正经历着从机械化到智能化的深刻变革。作为核心设备,四诊仪通过集成舌诊、面诊、脉诊与问诊模块,实现了传统“望闻问切”的标准化、数字化与可视化。行业数…

长租公寓哪家靠谱:官方TOP10深度揭秘

长租公寓哪家靠谱:官方TOP10深度揭秘在城市青年的居住选择中,“租房迷茫”与“体验落差”正成为普遍困扰。面对品牌公寓、中介租房、个人房源等多重选项,租客不得不在繁杂信息中反复权衡,不仅耗时耗力,更常陷入房…

winform PropertyGrid实现类似numericUpDown效果

在WinForm中,PropertyGrid控件默认用于显示和编辑对象的属性。如果你想要在PropertyGrid中实现类似NumericUpDown的效果(即一个可以点击上下箭头来增加或减少数值的输入框),你可以通过以下两种方式来实现:使用自定…

推荐口碑好的长租公寓:2025年TOP10精选与权威推荐

推荐口碑好的长租公寓:2025年TOP10精选与权威推荐在租房市场中,租客们常常陷入“租房迷茫”与“体验落差”之中。他们在“品牌公寓”“中介租房”“个人房源”等众多选择里徘徊,不仅耗费大量时间和精力,还常遭遇房…

研发团队效率陷阱:4种常见“假效率”现象及研发效率破局策略

在不少 B2B 软件企业里,研发团队比过去任何时候都“忙”:项目排得满、需求上线快、流程工具齐全、报表指标成片。但如果盯的是营收、交付与客户价值,很多管理者会发现,这种“效率”并没有真正拉动业务。本文将从 V…

2025年度五大防雨设备箱厂家实力排行榜,防雨柜/防雨设备箱销售厂家联系电话

随着智慧城市、智能交通及新能源基础设施建设的深入推进,作为关键设备保护外壳的防雨设备箱,其市场需求持续增长,对厂家的技术实力、产品质量及定制化服务能力提出了更高要求。行业竞争格局正从价格导向转向价值与综…

2025佛山财产分割律师服务TOP5权威推荐:看看哪家律师比

婚姻家事纠纷中,财产分割因涉及房产、股权、存款等复杂资产,常成为争议焦点。2024年佛山地区婚姻家事案件数据显示,62%的案件存在财产分割争议,其中38%因律师专业度不足导致权益受损。企业主、高净值人群等群体更面…

视频汇聚平台EasyCVR设备位置信息订阅异常原因排查

一、问题描述 近日,我们收到用户反馈,设备接入EasyCVR平台后,经纬度信息无法正常上报至上级平台,且下级平台未显示相应位置数据。用户同时提供了设备抓包数据供我们分析。经深入排查,发现问题源于平台配置中的网络…

地铁隧道风机公司排行榜To1!地铁隧道风机哪个品牌好?

在我们脚下,一条条地铁隧道穿城而过,一座座地下车库连接楼宇,一处处综合管廊承载城市命脉。这些看不见的“地下生命线”,每天承载着数以百万计的人流与车流。而在这密闭空间中,空气的流动,就是生命的律动。英飞风…

服务优质体验佳!十大美国留学中介哪家用户好评多

美国留学申请过程繁琐,中介的服务质量直接影响申请体验与结果。这份聚焦用户好评度的十大美国留学中介排名,从服务细节、响应效率、成果保障等维度梳理,帮学子找到口碑出众的美国申请伙伴。 第一名、优越留学 美国申…