|
一、编译OpenSSL' h( N4 n! h5 ]; s& I4 k: C, o4 O
在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。7 q, D9 a6 D0 s/ C
下载最新版本的Perl:http://www.activestate.com/,然后安装之。2 j f# _1 s3 [/ Z4 X [+ l
下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
3 ?. ~* \1 x7 z8 e$ j 进入openssl源码目录。
! L9 y4 [/ S o+ w: `5 } - cd x:/openssl
( Z1 H, |, D6 A1 u- |
复制代码 以下为参照该目录下的文件INSTALL.W32的执行过程:
3 x4 L5 x: m. D. N/ ^6 i" I* M7 K 运行configure:3 R" o% D- U' C
- 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/ Z2 P& p. `9 ^7 r8 b4 C& k
- tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
% t) M8 z+ |* P- D- U - tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands2 m1 J5 E2 y. F& L, v, M0 l) _
- NMAKE : fatal error U1077: 'ml' : return code '0x1'7 z+ O) K- W) ]% Q& H/ Z
- Stop.
复制代码
# M, [; G$ J; H. \' J# S4 S2 a
+ t& R% C2 X `3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。
- e6 M* b$ [" \8 d3 ?3 D% O
运行C:/Program Files/Microsoft Visual Studio/VC98/Bin/VCVARS32.BAT,使windows支持nmake 创建Makefile文件:4 g: E2 [/ U, [8 f% ~
- ms/do_ms+ o$ s: @3 O! Z9 n. ^
复制代码 编译动态库:
5 O* k7 z" f9 x* I0 @; | - nmake -f ms/ntdll.mak
! U9 E1 s: \% M3 V$ N8 K. \
复制代码 编译静态库:& N. o* L) }$ |' B) o: |: b
- nmake -f ms/nt.mak
- V8 j6 o1 t. N* |
复制代码 测试动态库:
6 L# i# }6 K9 Y' @3 ^2 F1 | - nmake -f ms/ntdll.mak test
" t* L+ F, U( d
复制代码 测试静态库:
& Z i3 U6 Z. u6 a - nmake -f ms/nt.mak test
5 y$ |& U. w8 W3 B' x7 h2 C4 c& U. W
复制代码 安装动态库:% E& g" |4 l( E8 v' v2 K1 @
- nmake -f ms/ntdll.mak install6 I3 e, Z& J; c0 L* T2 ?
复制代码 安装静态库:) b6 U5 a) h& C$ z
- nmake -f ms/nt.mak install
1 k' c& \& K8 Z6 T8 ~
复制代码 清除上次动态库的编译,以便重新编译:
3 O; L( }& w$ c2 a. p* u - nmake -f ms/ntdll.mak clean
; ~' X |2 h$ O! P" X
复制代码 清除上次静态库的编译,以便重新编译:1 u- R" c# g0 R8 w/ `$ E
- nmake -f ms/nt.mak clean9 E7 q. T9 i3 `3 K6 v/ t
复制代码二、使用OpenSSL; p! ~% j) t8 }6 S" D. d2 O' }
在VC中配置使用以上的函数库:; J7 R* R. @$ c# f; [
点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。* @1 m8 ^' t+ C
在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。. I; o( c! T# @( ?9 O. C; i
然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。 7 g5 _6 R, F% \4 s6 s
|