Windows 7 64位安装OpenSSL
环境:Windows 7 64位系统、VS2010、ActivePerl、NASM、OpenSSL源码(版本:openssl-1.0.2n)
1 准备环境
VS2010下载安装:百度
ActivePerl、NASM下载安装及环境变量的配置参考:http://bbs.csdn.net/topics/392193545?page=1
OpenSSL源码下载:https://www.openssl.org/source/
2 安装OpenSSL
1、设置编译环境
打开Visual Studio x64 Win64命令提示(2010)工具:
执行命令:
编译32位库:
cd D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
vcvars32.bat
编译64位库:
cd D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64
vcvars64.bat
注: D:\Program Files (x86)\Microsoft Visual Studio 10.0 为VS2010安装目录
2、进入OpenSSL源码目录,为目标操作系统配置
编译32位库:
perl Configure VC-WIN32 no-asm --prefix="C:\OpenSSL"
编译64位库:
perl Configure VC-WIN64A
注: "C:\openssl-1.0.2n"为源码目录,no-asm表示不用汇编,--prefix后面为需要安装的目录,编译64位库默认安装路径为"C:\user"
3、准备目标环境,生成编译文件
编译32位库:
ms\do_ms.bat
编译64位库:
注: 执行后,在ms目录下会生成 nt.mak 和 ntdll.mak 两个编译配置文件,nt.mak 用于生成静态lib库,ntdll.mak 用于生成动态dll库
4、编译动态库
nmake -f ms\ntdll.mak
编译32位库:
编译64位库:
5、测试动态库
nmake -f ms\ntdll.mak test
编译32位库:
编译64位库:
注: 最后显示"passed all tests"表示测试成功
6、安装动态库
nmake -f ms\ntdll.mak install
编译32位库:
编译64位库:
注:成功则会在相应目录生成动态库及相关文件
7、说明
- 以上编译的是release库,若编译debug库,则将以上第2步中的VC-WIN32或VC-WIN64A改成debug-VC-WIN32或debug-VC-WIN64A即可;
- 以上编译的是动态库,若编译静态库,则将以上第4、5、6步中的ntdll.mak改成nt.mak即可;
- 确保第4步之前没有已经编译过的文件,清除上次动态库的编译:nmake -f ms\ntdll.mak clean,清除上次静态库的编译:nmake -f ms\nt.mak clean
8、遇到的问题
- 第4步编译32位库:
解决方法:降低警告级别,编译动态库打开ntdll.mak文件,编译静态库则打开nt.mak,将CFLAG参数中的-W3改成-W0即可:
- 编译64位动态库成功,使用Dependency Walker查看生成的动态库无信息:
解决方法:使用最新的64位版本的Dependency Walker(这个问题找了好久,开始一直以为是生成的动态库有问题!):
9、拓展知识
- 32位与64位:应用程序、操作系统、库的关系:
http://blog.csdn.net/github_27886083/article/details/45456809
- 使用VS自带的Dumpbin工具判断动态链接库.dll和应用程序.exe是32位还是64位:
http://blog.csdn.net/jiang111_111shan/article/details/70186279
10、参考资料
https://wiki.openssl.org/index.php/Compilation_and_Installation#W64
http://bbs.csdn.net/topics/392193545?page=1
https://my.oschina.net/jathon/blog/1610759
https://software.intel.com/zh-cn/blogs/2013/12/22/windows-openssl
推荐阅读
-
windows7安装laravel homestead后,卡在SSH auth method: private key
-
Microsoft SQL Server 2008安装图解教程(Windows 7)
-
Windows7下PHP开发环境安装配置图文方法
-
windows 7安装ORACLE 10g客户端的方法分享
-
Win7旗舰版下Windows Virtual PC虚拟机安装教程
-
Windows7 64位安装最新版本MySQL服务器的图文教程
-
windows7下vs2010安装opencv2.4.3详细步骤(图)
-
Windows7旗舰版32位Oracle10g的安装和卸载教程
-
Windows7旗舰版32位Oracle10g的安装和卸载教程
-
Windows VHD/VHDX 辅助处理工具 2013 图文安装教程(教你安装Win7/Win8/win10双系统)