|
一、编译OpenSSL& y j$ a! c, F. y- f8 J
在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。8 s" o, }. z" [, k3 J
下载最新版本的Perl:http://www.activestate.com/,然后安装之。0 c. W3 x6 O0 T
下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。( l% W3 o0 z N; ?2 V
进入openssl源码目录。
- q1 q1 j; j2 M9 i - cd x:/openssl1 e8 i E8 u) J( V
复制代码 以下为参照该目录下的文件INSTALL.W32的执行过程:2 u- n/ O+ {+ j* N, J0 `
运行configure:4 u ]- x; T- H8 l4 X3 [" ?6 H# g U) P
- 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
8 V. f, _2 ?$ i- d5 H- s3 t8 a - tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands5 T3 c4 n$ ]. O' }1 g
- tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands& a2 g5 S" s0 r( \1 E
- NMAKE : fatal error U1077: 'ml' : return code '0x1'# `3 {' p2 G* @1 C( ]# Z
- Stop.
复制代码, k* f2 Y @5 S- V5 N: Y
* C; O) {. ^6 Q( w. l6 h- c' D# C
3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。
& `3 o: f0 |- j! D% n, v
运行C:/Program Files/Microsoft Visual Studio/VC98/Bin/VCVARS32.BAT,使windows支持nmake 创建Makefile文件:
& b0 C% _. x& R; W* t# R( p: t - ms/do_ms
, ?# j- r# D& v4 w6 N4 U* ?9 Z& T
复制代码 编译动态库:
9 M4 T3 \9 Y; n6 |( m0 ^ - nmake -f ms/ntdll.mak8 u* e. T; f& r7 ^5 {& g
复制代码 编译静态库:
% B3 c6 T. F/ v8 t( e7 o* f6 n - nmake -f ms/nt.mak' ^( Y5 s& H9 ?, c9 k2 b9 S1 O% B
复制代码 测试动态库:, h7 U/ f$ y1 p- l( e
- nmake -f ms/ntdll.mak test
$ [! F3 X& h4 @# b# O
复制代码 测试静态库:% i o# \' p" l0 y* e r& N, r
- nmake -f ms/nt.mak test
% S* x/ ?+ ^1 ~+ m% k
复制代码 安装动态库:& `/ P/ r3 C" P5 f! C+ {
- nmake -f ms/ntdll.mak install$ `3 r' x4 B; i8 _" K5 {
复制代码 安装静态库:
/ Z" d2 S; s) ~( _; _8 V) N; P0 F! H! O6 W) C - nmake -f ms/nt.mak install8 u% @' k- Y/ Y4 U' p/ x3 \
复制代码 清除上次动态库的编译,以便重新编译:4 U8 j5 g0 Q" R+ R E
- nmake -f ms/ntdll.mak clean
# B( y7 L2 W9 L3 T. b9 t& W
复制代码 清除上次静态库的编译,以便重新编译:
" V9 Q% N; Y2 [% N3 C! @9 d9 L - nmake -f ms/nt.mak clean1 R* W0 ~; _5 D
复制代码二、使用OpenSSL
0 T/ v; r" J% G/ K1 v1 Z 在VC中配置使用以上的函数库:
& B; u: T1 w- M g2 x 点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
3 t: V$ i& e+ }8 x, U0 y 在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
+ m. W% S2 [, F& B 然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。 % x0 ^' @3 b( A' S2 J
|