|
一、编译OpenSSL
+ s3 j% ]5 `; d; ~ 在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
. U; u( i9 i& v5 o2 r4 M, q 下载最新版本的Perl:http://www.activestate.com/,然后安装之。
0 s7 y# l+ j: s4 r 下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。8 y" b, H5 X+ M% z/ F
进入openssl源码目录。9 A4 ^ T( T6 G; D4 B% t
- cd x:/openssl5 k7 p0 n& E7 K" M1 x. r0 j
复制代码 以下为参照该目录下的文件INSTALL.W32的执行过程:6 }) V. m+ Q: k
运行configure:4 Y4 w8 ?9 X+ z0 N+ {2 j4 K
- 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
+ D6 D8 G! _8 L: X/ v% p - tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands2 F9 S( O3 c2 k4 d: W; \3 O
- tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands$ Y2 o) b! W* g& V: u& {
- NMAKE : fatal error U1077: 'ml' : return code '0x1'
+ \ `8 T8 T% w, U - Stop.
复制代码
+ W% E% d; I. g* U( h0 h0 [8 Q! a7 a5 l; ~( H
3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。
: Y; D# q; F U- W4 E' u
运行C:/Program Files/Microsoft Visual Studio/VC98/Bin/VCVARS32.BAT,使windows支持nmake 创建Makefile文件:
) f% p& y* J T; f$ C5 f - ms/do_ms
& k! f6 F, ?8 r0 M
复制代码 编译动态库:0 g. \: ^7 j. N$ X, ]
- nmake -f ms/ntdll.mak
- S" g) ~8 P- e2 ~- y* \& m$ |
复制代码 编译静态库:6 _* e7 u! F; ~6 e
- nmake -f ms/nt.mak
7 L% Y; x) e/ M- G$ T7 u
复制代码 测试动态库:
( x; j) k. |- `% m, n - nmake -f ms/ntdll.mak test
! U: _. T }, n2 j/ d$ U
复制代码 测试静态库:
! F* |) y- M: a" R. Q, d; ^ - nmake -f ms/nt.mak test
6 _. w3 R9 i! g7 c1 w7 @
复制代码 安装动态库:
2 g) H: j9 S/ ], C - nmake -f ms/ntdll.mak install/ u( P! F/ ~2 Y
复制代码 安装静态库:
7 F* \* w, }2 q5 }* d - nmake -f ms/nt.mak install7 ?7 y6 y) @" ~; C8 K( C
复制代码 清除上次动态库的编译,以便重新编译:. r4 B8 b$ @" }/ s8 x6 K; r
- nmake -f ms/ntdll.mak clean. \5 d' j8 J" p8 {( M8 i
复制代码 清除上次静态库的编译,以便重新编译:
1 q6 B6 X- D! i - nmake -f ms/nt.mak clean/ e+ {) S. i9 T1 Q8 c+ C
复制代码二、使用OpenSSL
0 i: g' y/ K1 v# b! f0 @( S 在VC中配置使用以上的函数库:0 u) y% u" a) n
点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。+ g# A4 D- X/ @2 L0 F
在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。! c" a; i# M1 c8 h5 M) u
然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。 # ?3 ]- D+ m' V# t% u B, U
|