找回密码
 立即注册
首页 业界区 业界 从0开始完成ActiveMQ-cpp在windows_x86平台的编译(从编 ...

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

鲫疹 3 天前
简介

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

编译环境介绍

电脑系统:win10 1909
cpu:ryzen 2700x
安装visual studio 2010

下载地址
  1. ed2k://|file|cn_visual_studio_2010_professional_x86_dvd_532145.iso|2591844352|6001253431AFE573E4344F5A0B1D9CAC|/
复制代码
安装
  1. 1. 双击打开:cn_visual_studio_2010_professional_x86_dvd_532145.iso
  2. 2. 双击steup.exe安装visual studio 2010
复制代码
编译openssl1.1.1

安装strawberry-perl

下载地址
  1. https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/SP_54201_64bit/strawberry-perl-5.42.0.1-64bit.msi
复制代码
安装nasm

下载地址
  1. 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源码
  1. https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-1.1.1w.tar.gz
复制代码
解压openssl_1.1.1源码
  1. tar -xzvf openssl-1.1.1w.tar.gz
复制代码
编译openssl_1.1.1w源码
  1. 1. 在开始菜单找到“Visual Studio x64 Win64 命令提示(2010)”,右键管理员打开
  2. 2. cd [openssl解压目录]  例如:cd C:\Users\admin123\Desktop\openssl-1.1.1w
  3. 3. perl configure VC-WIN64A --prefix="C:\Users\admin123\Desktop\openssl-1.1.1w\build_x64" no-asm   //如果是32位,则将VC-WIN64A改为VC-WIN32
  4. 4. nmake clean   //清理上次编译内容
  5. 5. nmake //编译openssl
  6. 6. nmake tests  //测试编译的openssl是否正常
  7. 7. 新建目录 C:\Users\admin123\Desktop\openssl-1.1.1w\build_x64
  8. 6. nmake install //安装到"C:\Users\admin123\Desktop\openssl-1.1.1w\build_x64"
复制代码
本地编译apr库

下载地址
  1. https://dlcdn.apache.org/apr/apr-1.7.6-win32-src.zip
复制代码
解压源码
  1. 使用windows解压软件,解压apr-1.7.6-win32-src.zip
复制代码
禁用ipv6
  1. 修改include\apr.hw文件,将#define APR_HAVE_IPV6改为0
复制代码
开始编译
  1. // x64 Release
  2. nmake -f Makefile.win ARCH="x64 Release" PREFIX="C:\Users\admin123\Desktop\activemq\apr-1.7.6\build_x64_Release" buildall install clean
  3. // ***************
  4. // 本人仅完成了x64编译,以下命令遇到的问题自行处理
  5. // ***************
  6. // x64 Debug
  7. nmake -f Makefile.win ARCH="x64 Debug" PREFIX="C:\Users\admin123\Desktop\activemq\apr-1.7.6\build_x64_Debug" buildall install clean
  8. // Win32 Release
  9. nmake -f Makefile.win ARCH="Win32 Release" PREFIX="C:\Users\admin123\Desktop\activemq\apr-1.7.6\build_win32_Release" buildall install clean
  10. // Win32 Debug
  11. nmake -f Makefile.win ARCH="Win32 Debug" PREFIX="C:\Users\admin123\Desktop\activemq\apr-1.7.6\build_win32_Debug" buildall install clean
  12. // 示例:编译并运行测试,仅支持debug模式
  13. nmake -f Makefile.win ARCH="x64 Debug" PREFIX="C:\Users\admin123\Desktop\activemq\apr-1.7.6\build_x64" buildall checkall install clean
复制代码
编译apriconv库

下载地址
  1. https://dlcdn.apache.org//apr/apr-iconv-1.2.2-win32-src.zip
复制代码
解压源码
  1. 使用windows解压软件,解压apr-1.7.6-win32-src.zip
复制代码
环境准备
  1. 1.使用visual studio 2010打开apriconv.dsw文件
  2. 2.在apriconv项目右键“属性”
  3. 3.在“配置属性”->“VC++目录”->“包含目录”中设置apr库头文件的路径
  4. 4.在“配置属性”->“VC++目录”->“库目录”中设置apr库文件的路径
  5. // 下面这个是编译出dll必须的的,仅编译lib可以忽略
  6. 5.在“配置属性”->“链接器”->“输入”->“附加依赖项”中加入“libapr-1.lib”
复制代码
编译lib
  1. 1.选择Release和x64,开始编译window_x64_release架构的lib库
  2. 2.输出目录“x64”
复制代码
编译dll
  1. 1.在apriconv项目右键”属性“
  2. 2.将“配置属性”->“常规”中的“目标文件扩展名”和“配置类型”改为dll
  3. 3.选择Release和x64,开始编译window_x64_release架构的dll库
  4. 2.输出目录“x64”
复制代码
编译aprutil库

下载地址
  1. https://dlcdn.apache.org//apr/apr-util-1.6.3-win32-src.zip
复制代码
解压源码
  1. 使用windows解压软件,解压apr-util-1.6.3-win32-src.zip
复制代码
环境准备

安装expat组件

说明:此组件aprutil项目有依赖
下载地址
  1. // 32位
  2. https://github.com/libexpat/libexpat/releases/download/R_2_7_3/expat-win32bin-2.7.3.zip
  3. // 64位
  4. https://github.com/libexpat/libexpat/releases/download/R_2_7_3/expat-win64bin-2.7.3.zip
复制代码
解压zip
  1. 使用windows解压软件,解压expat-win64bin-2.7.3.zip
复制代码
目录结构准备
  1. // 备注:以下这么改是因为Makefile.win中对相关项目路径进行了指定
  2. 1.将apr库的源码目录更名为apr
  3. 2.将apriconv库的源码目录更名为apr-iconv
  4. 3.将aprutil库的源码目录更名为apr-util
  5. // 备注:这个没有强制要求
  6. 4.在Source目录新建目录expat,在expat目录中新增子目录include
  7. 5.将expat-win64bin-2.7.3.zip中的Source\lib目录内容复制到include目录中
  8. 6.将expat-win64bin-2.7.3.zip中的Bin目录内容复制到expat中
  9. 层级结构如下:
  10. Source/
  11. ├─apr/
  12. ├─apr-iconv/
  13. ├─apr-util/
  14. └─expat/
  15.     └─include/
复制代码
在visual studio 2010中打开项目
  1. 使用visual studio 2010打开目录中的aprutil.dsw文件
复制代码
配置apr_crypto_openssl项目依赖
  1. 1.在“配置属性”->“VC++目录”->“包含目录”中设置openssl库头文件的路径(openssl-1.1.1w\build_x64\include)
  2. 2.在“配置属性”->“VC++目录”->“库目录”中设置open库文件的路径(openssl-1.1.1w\build_x64\lib)
  3. // 在ssl_1.1.1版本中,ssl的库改名了,需要手动调整
  4. 3.在“配置属性”->“链接器”->“输入”->“附加依赖项”中添加“libcrypto.lib”和“libssl.lib”
  5. 4.在“配置属性”->“链接器”->“输入”->“附加依赖项”中删除“libeay32.lib”和“ssleay32.lib”
复制代码
配置aprutil项目依赖
  1. // 配置apr库路径
  2. 1.在“配置属性”->“VC++目录”->“库目录”中设置apr库文件的路径(apr/x64)
  3. // 配置apr-iconv库路径
  4. 2.在“配置属性”->“VC++目录”->“库目录”中设置apriconv库文件的路径(apr-iconv/x64)
  5. // 配置expat库路径
  6. 3.在“配置属性”->“VC++目录”->“包含目录”中设置expat库头文件的路径(Source/expat/include)
  7. 4.在“配置属性”->“VC++目录”->“库目录”中设置expat库文件的路径(Source/expat)
  8. // 编译dll时,增加明确依赖项,lib可以忽略
  9. 5.在“配置属性”->“链接器”->“输入”->“附加依赖项”中添加库“libapr-1.lib、libexpat.lib、apriconv-1.lib、wldap32.lib”
复制代码
开始编译
  1. 在visual studio 2010中,选择x64_Release架构,开始编译
复制代码
编译activeMQ库

下载地址
  1. https://dlcdn.apache.org/activemq/activemq-cpp/3.9.5/activemq-cpp-library-3.9.5-src.zip
复制代码
解压源码
  1. 使用windows解压软件,解压activemq-cpp-library-3.9.5-src.zip
复制代码
环境准备
  1. 1.使用visual studio 2010打开vs2010-build/activemq-cpp.sln
  2. 2.在“配置属性”->“VC++目录”->“包含目录”添加apr、apriconv、aprutil、openssl头文件所在目录
  3. 2.在“配置属性”->“VC++目录”->“库目录”添加apr、apriconv、aprutil、openssl库文件所在目录
  4. 4.在“配置属性”->“链接器”->“输入”->“附加依赖项”中添加配置“libapr-1.lib;apriconv-1.lib;aprutil-1.lib;ws2_32.lib;”
复制代码
开始编译
  1. 1.在visual studio 2010中,选择x64_Release开始编译
复制代码
结束语

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

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册