一、编译OpenSSL
6 W* b* f& a5 K* J1 M- k; R 在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
% o' ?- j* Z) Z0 |; V 下载最新版本的Perl:http://www.activestate.com/,然后安装之。5 U B2 g' e$ t0 ]
下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
8 [% P G% V2 b" a5 v 进入openssl源码目录。
! S) e9 Q. `2 k* h2 R3 W; H - cd x:/openssl
+ S6 N4 c9 n E, B8 D
复制代码 以下为参照该目录下的文件INSTALL.W32的执行过程:) M" o# l) z# B1 N& l! E
运行configure:9 {8 t. P' E U6 Y/ \/ Q* R- h
- 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. z7 P& o( n" ]1 H& D8 z' k. ^0 s
- tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
( F3 Q3 B4 n/ t9 G2 Q( R, u6 z1 X5 l - tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands4 Z7 t2 d p9 P" ]& n5 m% Z
- NMAKE : fatal error U1077: 'ml' : return code '0x1'
+ C j: J5 ^, \4 [ c# x - Stop.
复制代码. d& E B$ f# k) e0 R6 N
2 M3 R% _ P* u& K" s# l3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。
2 @8 D& k& }6 g8 j) V
运行C:/Program Files/Microsoft Visual Studio/VC98/Bin/VCVARS32.BAT,使windows支持nmake 创建Makefile文件:
; ]1 A6 }: b! d, I, T - ms/do_ms5 q6 S9 b, d5 F4 L
复制代码 编译动态库:
$ G* K$ @ ^8 y$ m - nmake -f ms/ntdll.mak4 M S# N8 i0 n5 J) S/ E7 L" W: |
复制代码 编译静态库:
$ A/ K$ t1 [; s+ z - nmake -f ms/nt.mak
8 v% L: H4 l) [9 _
复制代码 测试动态库:
6 V7 n8 k- h2 i - nmake -f ms/ntdll.mak test
! y# c. [! {8 S/ h9 i
复制代码 测试静态库:+ k. a7 J6 d" \( X9 `4 c
- nmake -f ms/nt.mak test
# r9 J5 F8 J( m% N: K2 `7 v9 s
复制代码 安装动态库:' C( h( j; ~8 O: k$ @, ^
- nmake -f ms/ntdll.mak install6 \: J; i, V7 }( W
复制代码 安装静态库: @& ^1 W; M4 J. i, k
- nmake -f ms/nt.mak install$ d1 i* ^5 w `# p
复制代码 清除上次动态库的编译,以便重新编译:
; n& \3 D, _$ U - nmake -f ms/ntdll.mak clean- @6 X( I: Q/ D3 x' v, y) k- `
复制代码 清除上次静态库的编译,以便重新编译:. L1 g' c0 Z$ d: l; I/ @4 Q
- nmake -f ms/nt.mak clean3 `7 u$ r: }+ Z7 g- |& i0 w' r
复制代码二、使用OpenSSL, ]( U- W# @7 ^7 t: |
在VC中配置使用以上的函数库:1 x* _% `- {3 [! Q
点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。. ^, m& m o, v) y' Q. v
在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。$ M+ N6 U0 K- G) v5 Y9 {; M
然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。 7 q/ }' ?$ R5 m) {! n, w- L& s2 z
|