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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL
# V* R& [3 L) \! ]    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。# K+ Y+ D5 S1 ?4 W2 ?  Z
    下载最新版本的Perl:http://www.activestate.com/,然后安装之。
! x$ S  X% ]8 f. J9 p    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
1 G' M/ k5 p. R/ E    进入openssl源码目录。4 Z+ ?! J7 z  C% b6 _

  1.     cd x:/openssl& n3 b! H. ^, a, h" t8 Z( P
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
3 [) W& }5 l6 s% x    运行configure:$ B0 m5 X0 h1 A6 Q$ B- t

  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* e4 c6 l/ ?: B8 b5 V
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
    + _8 W6 G# a. N* t- O
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands
    ; `4 L" ~8 E6 l8 ?. |1 e: Q
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'& L9 A! ^) K7 @; J5 j& t& g
  5. Stop.
复制代码
    6 l/ E( M. e; o7 G: P. A% [6 }* _

    % V8 e* R( T  W3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。

% F; s" Q3 p3 }$ Z

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

    创建Makefile文件:
% V0 V4 u" t, _0 A

  1.     ms/do_ms
    & [2 l8 F  R  F2 y# M
复制代码

    编译动态库:
, I- k' h8 ?- E% j6 x  z6 l

  1.     nmake -f ms/ntdll.mak3 l" C% z3 K& X9 c, C* N! v
复制代码

    编译静态库:4 C- L5 `2 t5 P; g+ G

  1.     nmake -f ms/nt.mak
    3 S" }0 e. ]& A$ A# h
复制代码

    测试动态库:
' }- E. Z# j4 F. g  c8 q

  1.     nmake -f ms/ntdll.mak test9 U: m! }: w1 i5 r4 b
复制代码

    测试静态库:
( L4 _9 N# y, F& B

  1.     nmake -f ms/nt.mak test* [4 ]6 G, U- r6 ~( k( y1 [
复制代码

    安装动态库:5 z, }# s/ L: @

  1.     nmake -f ms/ntdll.mak install& q3 J: Y9 _0 m& V0 A
复制代码

    安装静态库:
% m6 T$ L& W. R8 t* Q

  1.     nmake -f ms/nt.mak install
    2 R3 [! A# l! O) O' p
复制代码

    清除上次动态库的编译,以便重新编译:& t0 h: F& t8 u7 m  V2 {

  1.     nmake -f ms/ntdll.mak clean
    0 A* d; ~7 \! a/ i: [7 X' b+ s
复制代码

    清除上次静态库的编译,以便重新编译:
9 N1 y& r. K$ @2 f  G

  1.     nmake -f ms/nt.mak clean
    - A2 c; d& H7 T& ^% C- N
复制代码

二、使用OpenSSL
" s5 z+ D+ G$ J  i8 Y" r    在VC中配置使用以上的函数库:+ R! s' C' c* e  q9 w, R( M% O0 ]4 O
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。" l) c& h: u% ^1 ~6 e. o7 \  f+ U3 D
    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
) c% b' I! y! }( E! g    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

7 ?3 A# y3 o+ A8 K& B
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-4 17:46 , Processed in 0.014824 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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