简介
由于需要将一个项目从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功能。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|
|
|
|
|
相关推荐
|
|
|