|
一、编译OpenSSL
. ~. X; e1 |+ O" L# j 在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。4 g5 H8 p C+ {- W7 m. v# N
下载最新版本的Perl:http://www.activestate.com/,然后安装之。
" W6 H: n) P3 k 下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
; k0 V% w D& @9 R+ {$ |' ? 进入openssl源码目录。
: t5 f1 t; B2 K3 P - cd x:/openssl
- [& d' W6 e' W5 Q" S1 L9 n
复制代码 以下为参照该目录下的文件INSTALL.W32的执行过程:
0 [3 R8 `# S1 V+ D O$ a 运行configure:
4 i! M2 A: t' o5 ]% ? - 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: O* C; w$ b8 ^7 v3 N* w
- tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands! ~9 M9 {" O# C- w9 m% t
- tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands9 o" X/ W3 D. u" a# `# B. C
- NMAKE : fatal error U1077: 'ml' : return code '0x1'
1 ]$ {3 l1 v8 H! L: d7 h - Stop.
复制代码% H4 n/ O& O! U. U- }: t" g4 q
- U) p) w. |- Q, c$ C$ d3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。
6 M( E0 [1 H% t$ p
运行C:/Program Files/Microsoft Visual Studio/VC98/Bin/VCVARS32.BAT,使windows支持nmake 创建Makefile文件:7 I. b. g) P# ]5 w9 s" J
- ms/do_ms" O+ B5 z6 Y( z! ?3 k+ k
复制代码 编译动态库:
9 g: J5 ?' |1 v& g - nmake -f ms/ntdll.mak
" v, J: c) t( G6 u4 \( S
复制代码 编译静态库:: s) ^. T; d- Z- t d! o
- nmake -f ms/nt.mak
$ T- Y# ^( A5 N. |. ^* z3 ~ @! D5 i
复制代码 测试动态库:
( t2 J6 g1 p' Y5 b- Q) P - nmake -f ms/ntdll.mak test
, ~; [9 h) T. y" l4 P( t4 P+ ?
复制代码 测试静态库:
7 C+ Y Z# I/ K - nmake -f ms/nt.mak test3 _$ P" H8 \- N
复制代码 安装动态库:
0 M9 ]: |$ k1 d7 l W+ f - nmake -f ms/ntdll.mak install9 ~8 A( H' _. t B! H* [+ W( c
复制代码 安装静态库:
u' R! o% f! V4 c* E6 a6 w p - nmake -f ms/nt.mak install# Y1 ^; t9 I9 D
复制代码 清除上次动态库的编译,以便重新编译:
4 P/ V. f) j7 U" H/ Q2 B7 T - nmake -f ms/ntdll.mak clean
" R0 v# e" A' F9 Q8 Q0 K
复制代码 清除上次静态库的编译,以便重新编译:# H! i( W ]- p% k" O& F, ]& N- z7 ^
- nmake -f ms/nt.mak clean
% c+ K, ]6 R3 y& u- C1 H! V
复制代码二、使用OpenSSL/ e* U& {' A7 X0 X" N/ O4 h
在VC中配置使用以上的函数库:
- [8 Q$ e- V6 `* n3 |1 F% r' m 点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
1 u5 S9 m; @ ^7 f 在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
7 z- A; A+ _+ @; O) e 然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。
7 B' _2 [% L$ k: D+ k6 h! W |