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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL
: x# s5 R1 \% {4 p    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。  u1 h. K1 f, C7 M
    下载最新版本的Perl:http://www.activestate.com/,然后安装之。
; s% J; D3 ^' r( p    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
& A( k) Z2 a/ L! z9 v    进入openssl源码目录。) Q% y* v3 X( b

  1.     cd x:/openssl9 g, K/ G5 G3 a& n- l% ?% ?
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
7 e. U. ?2 q* g1 ?' S    运行configure:' O  q3 x) g# x) }! T9 x- J

  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
    * u0 ^  s0 G- x
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands$ F" y& f1 f( v3 `
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands
    2 w1 j' ?) y5 s- c5 @* p+ ?
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'3 Y( Z& l8 V3 L* L2 F  }
  5. Stop.
复制代码
      F- q/ g: V* J  e# p
    ( z8 P/ @+ ^6 P# w& Z
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。

/ Z7 P5 F( r( O9 L

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

    创建Makefile文件:
, E- R7 ?. l" b4 j& ]4 h

  1.     ms/do_ms& Z) h+ X; J+ |  O: |/ W, P
复制代码

    编译动态库:
# J4 U2 X) M7 M8 D  |

  1.     nmake -f ms/ntdll.mak1 ~+ ?5 b2 x  w; \) e/ D: Y
复制代码

    编译静态库:
4 T1 @7 \5 {% i! @- C

  1.     nmake -f ms/nt.mak. e2 B1 [% u! i/ r) x
复制代码

    测试动态库:( I  u) I2 M$ v, u

  1.     nmake -f ms/ntdll.mak test
    . W  l* B, I6 q
复制代码

    测试静态库:8 W. v; k9 c; p* k& L6 t

  1.     nmake -f ms/nt.mak test
    ' K7 |* d9 D. X' c
复制代码

    安装动态库:& V& v; @$ j. z) M9 [# \! S/ d7 h$ j

  1.     nmake -f ms/ntdll.mak install
    $ A2 m3 t; g. |, T
复制代码

    安装静态库:4 z4 P. n* i6 q. M+ Q1 X

  1.     nmake -f ms/nt.mak install
    9 E/ C' C2 \4 k% e% O' `
复制代码

    清除上次动态库的编译,以便重新编译:
0 c9 n8 D/ I1 _1 q" y6 D

  1.     nmake -f ms/ntdll.mak clean+ G( j* e/ S# }; t1 Y
复制代码

    清除上次静态库的编译,以便重新编译:
0 h8 P5 D6 D0 }) A8 b

  1.     nmake -f ms/nt.mak clean
    ' J* |/ i6 Q7 r7 x2 n
复制代码

二、使用OpenSSL
  u  n" o; j: a, v- `  ]- X    在VC中配置使用以上的函数库:
7 @4 V' b2 c1 ]    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
6 Q; w- n6 Q) m9 M0 N& C    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
" b, ]/ X6 Y* d# ]! r    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。


  s7 D7 @" l) m2 Q: a
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-14 16:27 , Processed in 0.019960 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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