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(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
到现在就已经编译完成再输出目录可以看到编译结果了