一、编译OpenSSL
# D; G4 v$ n- Z# y3 @; j/ ?( U# w* N 在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。 B* H8 Y" x7 X0 k- p x
下载最新版本的Perl:http://www.activestate.com/,然后安装之。
3 ?. T* ^# \" A$ v 下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
6 W- {& W6 ^( g" p" ] 进入openssl源码目录。
2 p: m1 q% A2 `) [7 n, ]9 ?8 R# [ - cd x:/openssl* \7 Q+ o- R9 V" T7 Z& A
复制代码 以下为参照该目录下的文件INSTALL.W32的执行过程:
' {; u8 C8 M! p+ C) m4 T 运行configure:6 Y \* D# W1 c9 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.asm4 f% V% a3 \3 \( n
- tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands. `" z j! L; a9 H" {, ]) c
- tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands
! O) ?7 W) B. `. z& ?7 ^ - NMAKE : fatal error U1077: 'ml' : return code '0x1'7 G( s% U' |1 ?4 K
- Stop.
复制代码# O, B: E% j/ y4 I, a. y) ?: C
, s4 |1 m/ ]2 Q) W- j! }; x3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。 ( v# C/ P9 I6 n1 ~- D4 B: I5 g3 M
运行C:/Program Files/Microsoft Visual Studio/VC98/Bin/VCVARS32.BAT,使windows支持nmake 创建Makefile文件:. n( _" `0 l) V* s: G5 q$ Q
- ms/do_ms
( L! l% N. b `6 a! J# W
复制代码 编译动态库: E4 {1 V) x" t+ F6 |
- nmake -f ms/ntdll.mak* Q8 G. ]2 d" r8 }% I% i
复制代码 编译静态库:4 E9 `: R3 T/ y; U6 t, Z
- nmake -f ms/nt.mak
; ^8 |" Q, H1 ?) w" H3 d
复制代码 测试动态库:
: ?1 p9 j" Z& E4 k( h( c - nmake -f ms/ntdll.mak test$ u' E1 E5 f$ O6 k
复制代码 测试静态库:+ i* ~! T' i+ E
- nmake -f ms/nt.mak test
, p3 k/ B, k5 t
复制代码 安装动态库:
' c& e& G8 k% e1 O2 _ - nmake -f ms/ntdll.mak install% R% ~# J- o! W
复制代码 安装静态库:
% u5 i+ {/ z- B/ v0 y - nmake -f ms/nt.mak install
( V6 C% s7 \0 M
复制代码 清除上次动态库的编译,以便重新编译:
* v# j/ F8 k& H - nmake -f ms/ntdll.mak clean
4 s5 n, q8 U [+ I) H- u
复制代码 清除上次静态库的编译,以便重新编译:5 A0 k8 v: ]: X w$ a
- nmake -f ms/nt.mak clean; V. w4 W6 O9 @7 O
复制代码二、使用OpenSSL' O( Y* R( @, f- h J+ y1 [6 f
在VC中配置使用以上的函数库:3 T" h' G# q$ S8 L. |
点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。- {- u. D9 x* W# ^# P
在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
# Z0 [! q& o: c' O" K( P8 f0 U 然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。
2 k2 p7 J H9 r. [ |