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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL
, t8 A; G7 J8 u  F; w. }0 l    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
. U7 t: i2 U/ i7 o8 A3 _) e    下载最新版本的Perl:http://www.activestate.com/,然后安装之。
& j& N7 o) e) G/ J2 M( z. Z    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
/ i  S# x3 j* ]' P) _  o    进入openssl源码目录。
8 n6 V* C6 j4 Q! b' G1 b

  1.     cd x:/openssl
    # |  c7 v8 U5 M$ x* x& C
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:4 v( X; I/ H$ Z! ~, n
    运行configure:! m& _+ k8 l1 K2 \8 l6 K! b

  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* y& @5 E9 F( j5 n- Z
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands1 o" `) b9 O, `2 j' z' F' n& M; K
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands
    , y8 [4 W, g0 f+ s" |
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'
    : ~- ?4 A$ x1 E4 p7 k
  5. Stop.
复制代码
    * b' D: ^6 W4 i* W
    3 W  Z1 @! ~+ `+ S8 i. f4 P# I
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。


+ j( t6 @+ }( H9 K0 I

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

    创建Makefile文件:
$ y' N9 W! v& M$ y, f1 m5 i

  1.     ms/do_ms
    $ g( E6 }1 b/ F& c4 X1 p  y' M
复制代码

    编译动态库:
. Y  N( g3 H# E2 k

  1.     nmake -f ms/ntdll.mak
    5 ^; f! u3 C' I( X! Z" U7 W
复制代码

    编译静态库:
( t& F# N3 v$ v9 F% e; a7 N

  1.     nmake -f ms/nt.mak
      p( K% l; C; q, a$ t* z* {
复制代码

    测试动态库:
5 M0 @) r+ `/ J, O1 e5 ^

  1.     nmake -f ms/ntdll.mak test7 p: K* ]0 g# M* L# F
复制代码

    测试静态库:
  T$ |0 H) e9 B

  1.     nmake -f ms/nt.mak test
    6 t: Z$ F6 l/ L; o& I: h: g( Q0 q
复制代码

    安装动态库:
$ V% Z3 X; z9 u6 b9 \( b( u

  1.     nmake -f ms/ntdll.mak install
    : R; E% G3 O$ b' B
复制代码

    安装静态库:
( G- t2 K- ~* T# ^8 P2 a

  1.     nmake -f ms/nt.mak install8 W+ i* _* o0 S6 G/ M: V
复制代码

    清除上次动态库的编译,以便重新编译:
; a/ D1 V- x% _8 @

  1.     nmake -f ms/ntdll.mak clean
    1 K. `2 X5 `7 D+ v
复制代码

    清除上次静态库的编译,以便重新编译:
, U1 s  {! @' Y

  1.     nmake -f ms/nt.mak clean
    ( T* y7 f5 L  q. O
复制代码

二、使用OpenSSL  ]) E& ^; r, F6 q! \) E
    在VC中配置使用以上的函数库:" ~2 t  p3 P- p+ Q* e! i( {
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。! c5 q# x  p% _  T) J2 ]+ o
    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
3 |) e( [& ?* |# `" N4 S    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

- w# C- r6 b9 \2 S$ B0 [
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 04:53 , Processed in 0.017926 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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