找回密码
 注册
搜索
查看: 2790|回复: 0

在VC中编译和使用OpenSSL

[复制链接]
发表于 2014-12-17 21:14:18 | 显示全部楼层 |阅读模式

一、编译OpenSSL
( ]8 ?1 Y  }8 |# G/ Y! Q. t    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。" q9 s& F8 D* D1 l& }6 C
    下载最新版本的Perl:http://www.activestate.com/,然后安装之。1 x, m. `$ \# l' s8 M
    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
& U% C7 L. H& p. O' u    进入openssl源码目录。
& J+ R0 A2 M; G, q8 c& O3 o' {6 _

  1.     cd x:/openssl
    0 Y% p: {  t/ u
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:# p2 a/ e2 E) Y# F' W
    运行configure:
* n9 d9 z. Q) m9 x' o/ P: ?

  1. 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参数,关闭汇编模式,否则会出现类似如下错误:
  1. Assembling: tmp32\sha1-586.asm4 n* B% |+ B& \& e* }7 Y% w
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands0 e0 E+ j- c) m* H
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands6 n9 K! ^) v( c) v, g$ S# ?
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'5 h/ d3 q5 j: D  l: Q
  5. Stop.
复制代码

    ) P8 ^: @- J9 Q$ S: V7 ?$ h: [6 f) `2 R6 _
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。

2 h4 h. S! Y# G/ t7 M/ Q2 G

     运行C:/Program Files/Microsoft Visual Studio/VC98/Bin/VCVARS32.BAT,使windows支持nmake

    创建Makefile文件:6 {1 T9 M) N2 y9 p0 O5 O) C

  1.     ms/do_ms- ]- _0 W) ?& a% C
复制代码

    编译动态库:" H5 P' |; |7 ?$ }9 o2 c1 _, L

  1.     nmake -f ms/ntdll.mak
    ) }' h8 H  [6 N0 `$ Y
复制代码

    编译静态库:- }/ k( C: q" P7 {" \. h

  1.     nmake -f ms/nt.mak& L' g+ H8 L, h% j: ?
复制代码

    测试动态库:
; |' C0 B$ i* Q* k2 |" l# n# g

  1.     nmake -f ms/ntdll.mak test
    # V: b( e$ i+ n8 r
复制代码

    测试静态库:
% z$ z5 {, w& S' {

  1.     nmake -f ms/nt.mak test
    ' ?9 A0 p5 c* l% ?, u* ]6 p
复制代码

    安装动态库:; L7 @: u' t5 J

  1.     nmake -f ms/ntdll.mak install6 y" z- t( p4 w2 {- E/ H7 ~
复制代码

    安装静态库:
, D3 C- p$ W3 c" S. l

  1.     nmake -f ms/nt.mak install. ~& A, d/ y1 T3 o+ e4 ]/ J
复制代码

    清除上次动态库的编译,以便重新编译:
0 o2 g3 ?7 k/ l7 e3 ]

  1.     nmake -f ms/ntdll.mak clean) d7 r1 }! }- H
复制代码

    清除上次静态库的编译,以便重新编译:# o( l0 ]' D. o  R- r$ u

  1.     nmake -f ms/nt.mak clean; P1 V% p" N. O" V% T# T
复制代码

二、使用OpenSSL
: h6 U& _( E) C$ c    在VC中配置使用以上的函数库:
( U2 ?' H& Z# d4 Z    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
* V& l4 N, v' D  Y4 k# q    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
: t! ]4 k% o! A7 o4 E% {; k    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

! s$ K5 S& s+ @4 T# }# U% S% @
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|宁德市腾云网络科技有限公司 ( 闽ICP备2022007940号-5|闽公网安备 35092202000206号 )

GMT+8, 2025-6-19 04:00 , Processed in 0.015538 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表