|
一、编译OpenSSL+ t: f7 L/ ~) K3 z' D1 t
在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
) z5 }. c) L: y2 R4 [* _ 下载最新版本的Perl:http://www.activestate.com/,然后安装之。
8 E8 ?$ Y. q+ H 下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
& d. Q7 y! z) j. @7 l* e 进入openssl源码目录。
6 U) L8 m6 E- n& s - cd x:/openssl
" ~+ |6 ~! ?( @0 m, j. i/ G
复制代码 以下为参照该目录下的文件INSTALL.W32的执行过程:4 j9 ^" K/ y( k/ c! Q
运行configure:
0 `; e* B+ d. m8 ~2 `2 [ - perl Configure VC-WIN32 no-asm
复制代码1、[编译类型]可以选择以下: 参数 | 含义 | debug-VC-WIN32 | 编译32位debug版本 | VC-WIN32 | 编译32位release版本 | debug-VC-WIN64A | 编译64位debug版本 | VC-WIN64A | 编译64位release版本 | 2、设置编译类型的时候千万别忘记no-asm参数,关闭汇编模式,否则会出现类似如下错误:- Assembling: tmp32\sha1-586.asm
3 S9 e* f6 e0 c - tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
. X4 S4 z! h* t8 W - tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands8 ~8 @( o% r( j
- NMAKE : fatal error U1077: 'ml' : return code '0x1'
3 ?; D9 g& X' E; q+ W - Stop.
复制代码
: E5 h" g" @& _8 L4 y5 v
, D: e0 G ~% W0 X2 c1 S: M3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。
. p4 X* h: h, z; @
运行C:/Program Files/Microsoft Visual Studio/VC98/Bin/VCVARS32.BAT,使windows支持nmake 创建Makefile文件:
9 {( c& w& y' v. @9 k - ms/do_ms
5 h! U6 d+ Q' I$ }8 R7 i
复制代码 编译动态库:
3 Q& W1 w; m; B - nmake -f ms/ntdll.mak6 L9 q& j+ y7 P
复制代码 编译静态库:" f9 r' |7 _( ^5 Z" M; i: k% R
- nmake -f ms/nt.mak& o) D+ [ l+ F8 U2 j# R- F
复制代码 测试动态库:5 Q f9 E. j! G' w6 ~, D
- nmake -f ms/ntdll.mak test
S( y5 Q* V/ l+ @/ c6 e
复制代码 测试静态库:5 } d- m2 ?8 B0 V- D
- nmake -f ms/nt.mak test
; h, C" @! T- @3 Z
复制代码 安装动态库:2 x& R) a1 I' v4 m4 x7 U6 N# _
- nmake -f ms/ntdll.mak install1 l2 I: q6 ^6 V8 ]) ?
复制代码 安装静态库:
: }' i/ G4 A" v1 \4 Q - nmake -f ms/nt.mak install1 Z! S5 e8 K) W! L( M+ j- W
复制代码 清除上次动态库的编译,以便重新编译:6 I3 D% H" q1 R8 r! Q: r4 T# M! F' o( g
- nmake -f ms/ntdll.mak clean
7 M/ _; U1 n7 l' q
复制代码 清除上次静态库的编译,以便重新编译:/ U0 W s# _2 B" X
- nmake -f ms/nt.mak clean [% Q( C$ Q- Y' A0 C# h
复制代码二、使用OpenSSL
& t& ^& n/ Q. J& W0 I 在VC中配置使用以上的函数库:$ x! E* b) S) [ x9 S
点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
1 m. R4 p$ ~/ n& E, g 在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
! m A, c1 V9 C: u; W+ ~0 j 然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。
0 M1 W2 s6 r! y; Y |