|
一、编译OpenSSL5 p9 a; _" ~+ d/ N9 g+ n) T5 A
在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
* x+ R0 ]' H, M- ^ 下载最新版本的Perl:http://www.activestate.com/,然后安装之。7 E& }3 g. J5 i
下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
% E, r$ |1 T( k/ Q6 l4 A 进入openssl源码目录。
3 }" q" T. o6 S( [/ L" o6 K9 y/ |" ^ - cd x:/openssl
0 m, q7 L0 C8 d" I- \- z
复制代码 以下为参照该目录下的文件INSTALL.W32的执行过程:
2 Q5 V, f- L4 O# W0 N7 T; u 运行configure:) ?. x. u! [" y) P4 L2 x7 \0 `
- 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# z& }5 f. m/ p
- tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
, A! p5 H" ^/ h3 W! X$ x - tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands% F9 I, I; x, k" X: q! ~0 m
- NMAKE : fatal error U1077: 'ml' : return code '0x1'
/ x. N, c6 J2 o q - Stop.
复制代码
9 A# b* {. T6 m
% s: d0 X0 S6 q3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。
- X6 ?3 e$ A2 ]2 B% L/ A8 P7 u9 i
运行C:/Program Files/Microsoft Visual Studio/VC98/Bin/VCVARS32.BAT,使windows支持nmake 创建Makefile文件:
4 V* v+ l" f5 a9 j - ms/do_ms
5 ^0 M' `) k. p# t
复制代码 编译动态库:# k7 F9 w8 G! c3 s
- nmake -f ms/ntdll.mak
( y$ [8 J$ l& u
复制代码 编译静态库:+ S; _. R3 u0 X6 L& O
- nmake -f ms/nt.mak
$ M Z6 w# i8 B3 u# N
复制代码 测试动态库:1 }6 M1 n5 W: D/ f p5 i" D+ `
- nmake -f ms/ntdll.mak test, d4 k$ X; ]1 r# h7 L- T9 E; @
复制代码 测试静态库:. I2 r. x1 b! t$ a& e
- nmake -f ms/nt.mak test0 Q" n# |, J3 Q1 @3 F
复制代码 安装动态库:
* |! {% o f+ T3 H - nmake -f ms/ntdll.mak install7 B o7 g5 N a/ l4 ], c
复制代码 安装静态库:7 s5 A1 z6 ]2 H/ C
- nmake -f ms/nt.mak install: B. _9 A) f2 ^: y" i# \( F
复制代码 清除上次动态库的编译,以便重新编译:2 @* c0 ? W w. e6 y' [. E/ @* P2 s
- nmake -f ms/ntdll.mak clean. E2 O5 b8 t' z W: [: O6 o
复制代码 清除上次静态库的编译,以便重新编译:% i" E" T' }* ~ Z1 T A( N
- nmake -f ms/nt.mak clean9 b; y! l: |. {7 k1 n1 j
复制代码二、使用OpenSSL
- ^) I1 e. }& e4 b1 F, w1 l6 ]" h 在VC中配置使用以上的函数库:
" n1 w7 ~: f3 ]- C1 x/ Y 点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
4 k% c! u8 e! T# G" s; f0 V0 s6 a3 ? 在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。7 ~& i+ @# i+ p: y* y- ]: L# Q+ E
然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。 3 v0 n- j; A7 l' N) K$ p$ d
|