|
一、编译OpenSSL0 |) l1 [- o8 Q8 \6 _) P q# ]' y
在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
6 [& z, C3 e2 G 下载最新版本的Perl:http://www.activestate.com/,然后安装之。
' @; N2 _4 q8 C. R 下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。" C8 n8 \8 m9 z0 t% A
进入openssl源码目录。. W. S, I- _/ G& |- m$ W; A
- cd x:/openssl
0 n9 z# j4 v" [: B2 A1 w5 N3 v
复制代码 以下为参照该目录下的文件INSTALL.W32的执行过程:
6 n5 T6 t$ f& s1 r. E; X# h* j 运行configure:6 O+ w$ X7 n: c2 @( o: ]3 c* 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
H3 @2 S+ H2 C) y% | - tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
/ X. u" t+ i( }% { - tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands7 v, d9 k" |, A- A3 W
- NMAKE : fatal error U1077: 'ml' : return code '0x1'# W+ h* L3 h+ b) z6 m! C
- Stop.
复制代码
1 v6 S& G. s5 n8 {/ k
# z* Q% y3 M9 \( B7 p" M3 p" p; S3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。
" D2 E2 k e. U2 v+ T( n
运行C:/Program Files/Microsoft Visual Studio/VC98/Bin/VCVARS32.BAT,使windows支持nmake 创建Makefile文件:/ u e. y$ ?: j0 V) E- @: a
编译动态库:
7 o/ ]9 h' k6 x' p/ G6 H - nmake -f ms/ntdll.mak) ]( d. _% M' r' n6 v! o
复制代码 编译静态库:
: I) I7 X B4 m: t9 {6 u/ w - nmake -f ms/nt.mak+ r1 u" |- W" |
复制代码 测试动态库:3 U7 [8 ^' u0 A ^
- nmake -f ms/ntdll.mak test
0 C9 s/ j3 D( B/ z/ h( _
复制代码 测试静态库:; U1 h( I/ O |
- nmake -f ms/nt.mak test
) m; o9 g$ v9 \7 \1 e1 K7 n1 ~
复制代码 安装动态库:/ Q9 _+ u0 a9 |% P" F
- nmake -f ms/ntdll.mak install. F. E0 W v5 B: |9 L/ V
复制代码 安装静态库:
# O/ q+ i, L* {) m4 K7 g( g - nmake -f ms/nt.mak install8 y! ]+ G& L; g2 p" @ Z
复制代码 清除上次动态库的编译,以便重新编译:
; k; ^9 Z+ f% k% {9 V- W" t - nmake -f ms/ntdll.mak clean
9 A$ s: g3 [8 A& a* j
复制代码 清除上次静态库的编译,以便重新编译:4 j1 ~! q3 w2 F A0 L
- nmake -f ms/nt.mak clean
4 z" F* Q, n9 l* D( b2 d
复制代码二、使用OpenSSL; U+ g% @* F8 u! L
在VC中配置使用以上的函数库:% C6 X" z8 K- f4 S! S5 B
点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
) B+ M8 Q* S& G) l4 l+ Y5 l/ ? 在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
. p0 ` C' L; W+ k 然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。
+ S9 T4 p; U$ h) E+ X# | |