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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL
* }) h" v1 i& p3 N* g* L8 S    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。" L6 j8 x% v: L8 M8 F
    下载最新版本的Perl:http://www.activestate.com/,然后安装之。
! Q& d" ?0 `- F' x& _    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
+ g) V2 Z5 o7 x* T! b    进入openssl源码目录。' e; h( `' K2 U( y. Y

  1.     cd x:/openssl
    : L0 B7 j$ h' G+ e) L3 ~7 n
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:" C7 X5 e8 f: N  ?" ^: H- U+ ~' ~
    运行configure:" Q* s. l5 |8 t! _( L+ ]

  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.asm7 u  U8 l0 T& k
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
    - E- `: \- q% J4 W' p
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands# H& `/ `0 ]; i- t' m
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1') U7 H. R. E1 Y1 U4 Y7 G  y" O; n
  5. Stop.
复制代码
    # b5 \! U7 `/ I- g9 l
    / l% S6 T7 F& e, q
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。


" J" W' W  n" J4 j% v1 w9 [, c  a( z& D

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

    创建Makefile文件:  ~/ J. U5 Y* z' {+ I4 h1 T4 l

  1.     ms/do_ms
    : l4 w4 C3 r& R+ m1 m& u
复制代码

    编译动态库:: W5 ~* \! |( j6 Z; R

  1.     nmake -f ms/ntdll.mak
    6 K8 J& }. ^" E: a9 F" m
复制代码

    编译静态库:5 ~$ K6 B" H3 Z( e" I' W

  1.     nmake -f ms/nt.mak
    , H* |9 i! J. Y( ~" |
复制代码

    测试动态库:6 N+ d% W9 ~  ^6 {( v% v

  1.     nmake -f ms/ntdll.mak test7 f' T6 s: ^. ~/ |: F; }0 B* t6 X
复制代码

    测试静态库:
4 G  X- k2 I0 _$ j# i1 s8 [5 L

  1.     nmake -f ms/nt.mak test
    4 s' u9 F- N2 z- q: f
复制代码

    安装动态库:% k% n1 ~( Q6 Y2 u

  1.     nmake -f ms/ntdll.mak install
    # d, |+ p" T- E$ \' l  r1 M1 X  Y
复制代码

    安装静态库:
5 o1 @4 R! e0 m7 V& Z, M

  1.     nmake -f ms/nt.mak install, W6 k/ B8 K7 ^, x
复制代码

    清除上次动态库的编译,以便重新编译:* q8 x1 P! G# J* x+ o- J

  1.     nmake -f ms/ntdll.mak clean, I# Z: r3 P3 r" K
复制代码

    清除上次静态库的编译,以便重新编译:9 K5 Z5 C. w, C3 F, ^0 s7 J% e. o/ j

  1.     nmake -f ms/nt.mak clean
    3 h; d2 U& _5 }0 J( i7 s' |8 z
复制代码

二、使用OpenSSL
! O4 i, L/ D) K4 f- \& r3 B    在VC中配置使用以上的函数库:
% A2 L: ^" w! ~4 s: v    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
3 N3 ?& T* b$ |+ M1 ]    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
: t5 t0 {9 a/ k5 H    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

! L( A5 e- s  x$ A  k7 r
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-13 20:14 , Processed in 0.017993 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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