1. Perl下载地址http://downloads.activestate.com/ActivePerl/releases/5.16.3.1603/ActivePerl-5.16.3.1603-MSWin32-x86-296746.zip
2.openssl下载地址 http://www.openssl.org/source/ 下载latest openssl并解压到C:\openssl-1.0.1e。
安装步骤: (注:openssl目录下的有install.win32安装说明)
1、运行Configure。
>cd C:\openssl-1.0.1e
>perl Configure VC-WIN32 --prefix=c:/Openssl 这里指定安装目录
2、创建Makefile文件。
>ms\do_ms
推荐使用这种方式,另外两种方式 如果使用也必须保证本机有编译器才能使用。
:ms\do_masm (默认vc 自带的编译器;也也以自己下载安装)
:ms\do_nasm (需要自己下载)
3、配置VC环境变量。
>cd C:\Program Files\Microsoft Visual Studio\VC98\Bin
>vcvars32.bat
4、编译。
>cd C:\openssl-1.0.1e
>nmake -f ms\ntdll.mak
如果编译成功,最后的输出都在out32dll目录下:包括可执行文件、两个dll(ssleay32.dll, libeay32.dll)和两个导出库文件(ssleay32.lib, libeay32.lib)。
编译分两种情况,生成静态库和动态库
(1) 如果是编译OpenSSL动态库,则在命令行键入 nmake -f ms\ntdll.mak
编译成功可在文件夹out32dll里面查看输出的文件,包括应用程序的exe文件、lib文件、dll文件。
(2) 如果是编译OpenSSL静态库,则在命令行键入 nmake -f ms\nt.mak
编译成功可在文件夹out32里面查 看输出的文件,包括应用程序的exe文件、lib文件。
到此编译已经完成。
另外还有几个命令可能会用到:
测试OpenSSL动态库:nmake -f ms\ntdll.mak test
测试OpenSSL静态库:nmake -f ms\nt.mak test
安装OpenSSL动态库:nmake -f ms\ntdll.mak install
安装 OpenSSL静态库:nmake -f ms\nt.mak install
清除上次OpenSSL动态库的编译,以便重新编 译:nmake -f ms\ntdll.mak clean
清除上次OpenSSL静态库的编译,以便重新编译:nmake -f ms\nt.mak clean
5、检查下是否成功,执行命令:“nmake -f ms\ntdll.mak test”。
6、运行“nmake -f ms\ntdll.mak install”,或“nmake -f ms\nt.mak install”安装编译后的OpenSSL到指定目录。
7、查看安装结果C:\Openssl下包含了三个文件夹Bin、include、lib。bin下包括openssl.exe(openssl指令程序)、ssleay32.dll(ssl协议动态库)、libeay32.dll(密码算法库)。lib下包括libeay32.lib,ssleay32.lib。Include目录包括了OpenSSL开发设计的头文件。
8、为VC添加头文件和静态链接库路径。
在Include files中增加C:\Openssl\include目录;
在Libray files中增加C:\openssl-1.0.1e\out32dll。
9、编写OpenSSL程序,可参考C:\openssl-1.0.1e\demos
(1) 包含相应头文件
#include <openssl/ssl.h>
#include <openssl/err.h>
#include <openssl/bio.h>
(2) 添加静态链接库
#pragma comment(lib, "libeay32.lib" )
#pragma comment(lib, "ssleay32.lib")
或ProjectàSettingsàLinkàObject\library modules填写libeay32.lib ssleay32.lib。
(3) 将动态链接库ssleay32.dll, libeay32.dll复制到C:\WINDOWS\system32或Debug目录下,确保动态链接库在正确的路径。
安装中遇到的问题:
nmake -f ms\ntdll.mak时报以下错误:
1、Building OpenSSL
perl util/copy.pl ".\.\e_os.h" "tmp32dll\e_os.h"
Can‘t load ‘E:\OraclePro\perl\5.8.3\lib/MSWin32-x86-multi-thread/auto/Fcntl/Fcnt
l.dll‘ for module Fcntl: load_file:找不到指定的模块。 at E:\OraclePro\perl\5.8.3
\lib/MSWin32-x86-multi-thread/XSLoader.pm line 68.
at E:\OraclePro\perl\5.8.3\lib/MSWin32-x86-multi-thread/Fcntl.pm line 234
Compilation failed in require at util/copy.pl line 3.
BEGIN failed--compilation aborted at util/copy.pl line 3.
NMAKE : fatal error U1077: “C:\Perl\bin\perl.EXE”: 返回代码“0xff”
Stop.
2、或者perl.exe弹出提示框说:找不到perl58.dll
查看环境变量PERL5LIB改为将里面除了perl外的别的目录的环境变量全部清除。
我这里是只有“C:\Perl\lib\auto\Fcntl;”这个值Path里的值包含 C:\Perl\bin:C;\Perl\site\bin;C:\Perl\bin;
另尽量不要在win7上用vc++6.0来编译 可能会在link的时候报错 ,经验证用vs2010中文版没有问题