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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL
# P  M1 S  w/ j1 y- ?; s    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
2 F* @! l0 X; y    下载最新版本的Perl:http://www.activestate.com/,然后安装之。
( g2 q/ Y3 v* ]6 e! n" V, M    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
* A0 u/ S( ?4 j$ e( g    进入openssl源码目录。- k- x2 G9 O( p1 C3 M

  1.     cd x:/openssl
    8 C, c+ ?( E) u( [  b& z# D  Y
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
- f1 W* k$ E& Q4 T& N, s- z& r    运行configure:
$ }: h  }. v6 @: r) U* x7 L; ?  U6 [

  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.asm
    # b1 p, o; c  J# e3 l4 D/ b% ]" h
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands4 G3 L8 g8 Q( M- W( ]% V
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands9 R' v  u/ D- B9 M- ]
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'' E6 H+ r9 B; @2 _/ U% h
  5. Stop.
复制代码

    2 R. `# }8 _4 j* U
    # ^. Q8 v% K( {! J/ }$ _" E3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。

$ }! L" B' P6 t" x% J: b

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

    创建Makefile文件:
  j4 y1 c# X. Y4 V

  1.     ms/do_ms2 X$ t% C# f! e) y
复制代码

    编译动态库:0 g. Y* G3 E0 k+ D$ x' d! h

  1.     nmake -f ms/ntdll.mak
    . i& B. D+ Q" b0 q: L
复制代码

    编译静态库:0 Y- Y5 F2 g* H6 I

  1.     nmake -f ms/nt.mak
    : d! f; M7 Y& Y  p- [8 O6 O
复制代码

    测试动态库:# ^2 u2 V  ^  G+ V7 o+ [: e

  1.     nmake -f ms/ntdll.mak test
    9 p, g% z' o$ @! w( a. P$ J. s
复制代码

    测试静态库:
- L. H* h7 U8 l: a  R" N, d

  1.     nmake -f ms/nt.mak test
    , v7 v) J, ~- P: g* @
复制代码

    安装动态库:
! C- {5 D- D! s

  1.     nmake -f ms/ntdll.mak install
    ! s8 ?' C  q5 N, @# K
复制代码

    安装静态库:8 T$ n. a. f, c7 l

  1.     nmake -f ms/nt.mak install
    1 l5 {# y  _  P# c6 V& i. I
复制代码

    清除上次动态库的编译,以便重新编译:* |9 ^, Q3 d2 O( s* Z4 }0 A' w" N

  1.     nmake -f ms/ntdll.mak clean
    : H, s+ c* S% T/ b( n' P3 c
复制代码

    清除上次静态库的编译,以便重新编译:
; l( a, B, O5 I+ z

  1.     nmake -f ms/nt.mak clean
    7 x' G/ @, l8 j+ ^/ e4 O
复制代码

二、使用OpenSSL( y3 f9 W- I  E8 G9 S' I9 Y
    在VC中配置使用以上的函数库:; P9 T8 J: a8 e6 K# `
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。- i; E7 h- u! D3 y9 b  P
    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
& h7 A( S, Y0 E$ m0 n" Q    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。


: m! P6 w) H: l1 @+ k9 O( E
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-8 19:37 , Processed in 0.035627 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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