admin 管理员组文章数量: 1184232
Windows编译Openssl(1.1.1) xp版
1. Openssl源码下载
openssl下载
2 . 安装Perl
ActivePerl下载
下载完再终端输入perl -v验证是否安装成功
3. 安装Nasm
nasm下载
下载完成之后检查nasm路径是否有添加到环境变量path中, 如果没有将nasm安装目录添加到path中,在终端输入nasm验证是否设置成功
4. Openssl xp版编译
4.1 打开Visual Studio xxx xxx命令提示
从开始里找到vs的命令提示, 比如VS2015 x86...(再这里打开的VS命令行环境一定要和你需要编译的openssl版本一致,比如想要编译openssl 32位版,就应该打开VS2015 x86)
4.2 跳转到Openssl源码目录
从之前打开的命令行工具的终端跳转到你保存的Openssl源码目录
4.3 利用Perl生成Makefile文件
perl configure debug-VC-WIN32 -no_shared --prefix=D:\OpenSSL\Debug\win32
debug表示编译出来的版本位debug版,如果需要release,去除debug就好了VC-WIN32表示编译出来的程序时32位的(x86),64位程序使用-VS_WIN64A(这里的A代表AMD64), 还有一个VC-WIN64I(代表IA64)- no_shared 表示编译静态库,如果需要编译动态库,去掉此选项
- –prefix后面跟的是编译完成保存的目录
4.4 修改Makeifile或者源代码使其支持XP
有两种方法可以让Openssl编译出来的程序支持XP,第一种是修改makefile文件再LIB_CPPFLAGS中加上_WIN32_WINNT=0x502
LIB_CPPFLAGS=-D"_WIN32_WINNT=0x502" #后面是源码就有的宏定义...
第二种方法是将crypto/rand/rand_win.c 中第22行开始注释掉, 就是下面三行注释掉
# if defined(_MSC_VER) && defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0600
# define USE_BCRYPTGENRANDOM
# endif
利用nmake编译openssl
再刚刚的终端中输入nmake,敲回车
> nmake
再进行编译时可以出现一种错误"rc 不是可执行命令",用everything搜索rc.exe进入到对应的版本的rc.exe目录,将这个目录加入到环境变量path中( 我这里RC.exe选择的是C:\Program Files (x86)\Windows Kits\8.1\bin\x86)
等nmake执行完,敲nmake install
> nmake install
如果需要重新编译时一定要执行一遍nmake clean
> nmake clean
到现在就已经编译完成再输出目录可以看到编译结果了
版权声明:本文标题:windows编译openssl xp版本 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1737938582a1898875.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论