ultracpp

ultracpp

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1.下载openssl代码,下载地址:http://www.openssl.org/source/ ,如果使用winrar解压失败的话(提示不能创建符号链接),可以关闭UAC。
2.下载安装ActivePerl,下载地址:http://www.activestate.com/activeperl
3.从Windows开始菜单运行“Visual Studio Command Prompt (20xx)”
4.进入openssl目录,例如 E:\openssl-1.0.1e,执行以下命令:

编译X86
E:\openssl-1.0.1e>perl Configure VC-WIN32 --prefix=E:\openssl-1.0.1e
E:\openssl-1.0.1e>ms\do_ms
E:\openssl-1.0.1e>nmake -f ms\nt.mak
此时会产生一个out32目录,里面就是想要的东西。

注意:
以上是将openssl编译为静态链接的lib文件。如需编译为dll,最后一个命令改成
D:\openssl-1.0.1e>nmake -f ms\ntdll.mak
然后会生成out32dll里面

需要生成debug版本就使用
perl Configure debug-VC-WIN32 --prefix=E:\openssl-1.0.1e

编译X64
64位AMD版本(需要64位Visual Studio Command Prompt (20xx)):
E:\openssl-1.0.1e>perl Configure VC-WIN64A --prefix=E:\openssl-1.0.1e
E:\openssl-1.0.1e>ms\do_win64a

编辑ms/nt.mak (或者ms/ntdll.mak),修改输入目录:
# The output directory for everything intersting
OUT_D=out64
# The output directory for all the temporary muck
TMP_D=tmp64
# The output directory for the header files
INC_D=inc64
INCO_D=inc64/openssl

E:\openssl-1.0.1e>nmake -f ms\nt.mak

64位AMD debug版本:debug-VC-WIN64A(需要重新编辑nt.mak,改为out64.dbg之类)
其实你在ms\do_*的时候是会修改*.mak文件的。

 

VC2015编译的问题

可能会因为你的sdk路径包含问题,提示找不到windows.h之类的头文件,此时需要修改环境变量,增加INCLUDE和LIB

INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\shared;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\ucrt

LIB=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10586.0\um\x86;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10586.0\ucrt\x86

64位的话需要删除前面的重新设置过!

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10586.0\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10586.0\ucrt\x64

 

用完可以删除环境变量,其实应该在mak文件里面编辑下就可以了,但是我不知道怎么改,懂得人麻烦留下言

 

如果之前用以前的vs版本编译过的话,需要清理临时文件,obj之类的

 

如果汇编版本编译失败的话

禁用汇编

配置时用 perl Configure VC-WIN32 no-asm

生成makefile时用 ms\do_nasm

 

其它
参考:http://blog.csdn.net/boise/article/details/5627191 (如何编译openssl x64)
或者直接下载 win32-openssl(个人觉得比较坑爹)
下载页面:http://slproweb.com/products/Win32OpenSSL.html
注意选择开发者版本还是使用者版本。安装之前需要Vc2008运行库,不管你有没有安装高版本的运行库。

 

如果提示 uplink.c(43) : error C2220: warning treated as error之类的错误的话,需要将ntdll.mak中的-WX去掉

 

posted on 2013-12-07 19:15  ultracpp  阅读(1454)  评论(0编辑  收藏  举报