今天在Windows 编译openssl 遇到问题记录一下,供需要的人参考。
参考链接:
http://blog.csdn.net/kingjo002/article/details/8575586
http://stackoverflow.com/questions/31680687/vs2015-msbuild-vsvars32-bat-cannot-determine-the-location-of-the-vs-instal
http://www.vcerror.com/?p=2023
准备:
1. 官网下载openssl: openssl-1.0.2h.tar.gz
http://www.openssl.org/source/
2. 下载perl
http://download.csdn.net/download/xidianliuy/1575757
编译过程:
参考openssl目录下的install.win32说明进行安装:
1、进入解压目录。
>cd C:\openssl-0.9.8k
2、运行Configure。
>perl Configure VC-WIN32
如不成功会有明显提示。
3、创建Makefile文件。
>ms\do_ms
推荐使用这种方式,另外两种方式 如果使用也必须保证本机有编译器才能使用。
:ms\do_masm (默认vc 自带的编译器;也也以自己下载安装)
:ms\do_nasm (需要自己下载)
4、配置VC环境变量。
>cd C:\Program Files\Microsoft Visual Studio\VC98\Bin
>vcvars32.bat
5、编译动态链接库。
>cd C:\openssl-0.9.8k
>nmake -f ms\ntdll.mak
如果编译成功,最后的输出都在out32dll目录下:包括可执行文件、两个dll(ssleay32.lib, libeay32.lib)和两个lib文件(ssleay32.dll, libeay32.dll)。
遇到问题:
1. 配置VC环境变量时,
ERROR: Cannot determine the location of the VS installation.
解决方法:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VS7]
"12.0"="C:\\Program Files\\Microsoft Visual Studio 12.0\\" 改成
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VS7]
"12.0"="C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\"
tmp32dll\sha1-586.asm(1432) : error A2070:invalid instruction operands
tmp32dll\sha1-586.asm(1576) : error A2070:invalid instruction operands
NMAKE : fatal error U1077: “"G:\Program Files (x86)\Microsoft Visual Studio 10.
0\VC\BIN\ml.EXE"”: 返回代码“0x1”
解决方法:
方法一: (我用的此方法,问题解决)
需要用nasm ,
先 ms\do_nasm
然后
nmake -f ms\ntdll.mak -a
方法二:(此方法没有试)
禁用汇编
配置时用 perl Configure VC-WIN32 no-asm
生成makefile时用 ms\do_nasm
这样就可以了