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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL
0 k; [2 Y6 G) Q5 D/ {: L    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
; P. `. x" p  e! {5 T3 ?8 j    下载最新版本的Perl:http://www.activestate.com/,然后安装之。
# O$ \; C- Q: V( ]2 g7 r0 h    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。/ W( \* G+ g4 V  y. X( i
    进入openssl源码目录。
3 G) R, P2 I" y0 b( G) G6 J- {7 n$ E0 N

  1.     cd x:/openssl
    0 b; U; D( e' y1 {& I# B
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
% K' ^" [. z, K3 @% b$ b8 ^7 ~& _    运行configure:
' J0 k0 P* G  {0 m& P+ N

  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
    ' t4 ]. ?9 s% B7 S. r
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
    3 M1 Q5 f7 M7 V7 }& Z4 t7 W4 A9 g
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands
    $ |' K; `7 @- e; V/ v- \6 G
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'2 \4 B9 ?3 J* G5 y1 P1 x
  5. Stop.
复制代码

    : z" c, x: X+ E; q% K8 _, n
    . ]( V! n1 s8 ^3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。

! r) o. ?" N) w5 A9 ]+ X5 @

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

    创建Makefile文件:
; L9 `! v9 w! Z* p' ~) W! s

  1.     ms/do_ms
    : c* V' N+ R: ~$ s) _
复制代码

    编译动态库:
2 Z" H6 T6 p' x2 g/ a; @

  1.     nmake -f ms/ntdll.mak
    4 u# y6 J. j. c( N7 L! C/ \0 S: k
复制代码

    编译静态库:' V- o5 n+ ^$ W8 [8 \9 _

  1.     nmake -f ms/nt.mak
    $ e4 Y; b4 ^, V" a
复制代码

    测试动态库:; P, W: b- x- X# X0 |  o8 {' z

  1.     nmake -f ms/ntdll.mak test
    , _  c$ ?5 _  P* \# U
复制代码

    测试静态库:  f) T2 `. F) F3 o! c2 x

  1.     nmake -f ms/nt.mak test
    . h, q' Z. f/ v9 [: @- v% E7 A! r
复制代码

    安装动态库:
' u  Z- R7 b' X/ u: I

  1.     nmake -f ms/ntdll.mak install
      B+ C/ j0 `# d) Q0 O1 l
复制代码

    安装静态库:
  h- S! C/ i, n2 j

  1.     nmake -f ms/nt.mak install
      _5 b/ b2 I" ]7 j, i7 d! h
复制代码

    清除上次动态库的编译,以便重新编译:
) q% s3 e) v! Q" c  K' x' k( O( N

  1.     nmake -f ms/ntdll.mak clean
    : }9 Y1 f6 L  P7 d8 X+ U# H
复制代码

    清除上次静态库的编译,以便重新编译:( E1 I) [0 L; R8 r  p% K3 t

  1.     nmake -f ms/nt.mak clean$ Z1 Z; U5 G3 `3 m) A, ~
复制代码

二、使用OpenSSL, X1 i, ]* m/ ~2 y
    在VC中配置使用以上的函数库:) o$ P9 s. g% G5 w4 k3 v
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。  _5 h- Q& w! x6 r8 w% i  X  D6 Z
    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。. ]# K3 m- r" [% n% q, K) `
    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

$ @. L. }; b: w
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-30 04:25 , Processed in 0.043650 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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