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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL' h( N4 n! h5 ]; s& I4 k: C, o4 O
    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。7 q, D9 a6 D0 s/ C
    下载最新版本的Perl:http://www.activestate.com/,然后安装之。2 j  f# _1 s3 [/ Z4 X  [+ l
    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
3 ?. ~* \1 x7 z8 e$ j    进入openssl源码目录。
! L9 y4 [/ S  o+ w: `5 }

  1.     cd x:/openssl
    ( Z1 H, |, D6 A1 u- |
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
3 x4 L5 x: m. D. N/ ^6 i" I* M7 K    运行configure:3 R" o% D- U' C

  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/ Z2 P& p. `9 ^7 r8 b4 C& k
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
    % t) M8 z+ |* P- D- U
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands2 m1 J5 E2 y. F& L, v, M0 l) _
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'7 z+ O) K- W) ]% Q& H/ Z
  5. Stop.
复制代码

    # M, [; G$ J; H. \' J# S4 S2 a
    + t& R% C2 X  `3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。


- e6 M* b$ [" \8 d3 ?3 D% O

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

    创建Makefile文件:4 g: E2 [/ U, [8 f% ~

  1.     ms/do_ms+ o$ s: @3 O! Z9 n. ^
复制代码

    编译动态库:
5 O* k7 z" f9 x* I0 @; |

  1.     nmake -f ms/ntdll.mak
    ! U9 E1 s: \% M3 V$ N8 K. \
复制代码

    编译静态库:& N. o* L) }$ |' B) o: |: b

  1.     nmake -f ms/nt.mak
    - V8 j6 o1 t. N* |
复制代码

    测试动态库:
6 L# i# }6 K9 Y' @3 ^2 F1 |

  1.     nmake -f ms/ntdll.mak test
    " t* L+ F, U( d
复制代码

    测试静态库:
& Z  i3 U6 Z. u6 a

  1.     nmake -f ms/nt.mak test
    5 y$ |& U. w8 W3 B' x7 h2 C4 c& U. W
复制代码

    安装动态库:% E& g" |4 l( E8 v' v2 K1 @

  1.     nmake -f ms/ntdll.mak install6 I3 e, Z& J; c0 L* T2 ?
复制代码

    安装静态库:) b6 U5 a) h& C$ z

  1.     nmake -f ms/nt.mak install
    1 k' c& \& K8 Z6 T8 ~
复制代码

    清除上次动态库的编译,以便重新编译:
3 O; L( }& w$ c2 a. p* u

  1.     nmake -f ms/ntdll.mak clean
    ; ~' X  |2 h$ O! P" X
复制代码

    清除上次静态库的编译,以便重新编译:1 u- R" c# g0 R8 w/ `$ E

  1.     nmake -f ms/nt.mak clean9 E7 q. T9 i3 `3 K6 v/ t
复制代码

二、使用OpenSSL; p! ~% j) t8 }6 S" D. d2 O' }
    在VC中配置使用以上的函数库:; J7 R* R. @$ c# f; [
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。* @1 m8 ^' t+ C
    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。. I; o( c! T# @( ?9 O. C; i
    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

7 g5 _6 R, F% \4 s6 s
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-13 19:00 , Processed in 0.018165 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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