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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL( y' R& a* {, P$ L# u1 S# N
    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。* c/ h! P. r  J1 s' O
    下载最新版本的Perl:http://www.activestate.com/,然后安装之。5 d- R1 W! e3 u3 [. X+ z
    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
5 t( V: l3 R( A9 ?( {" u" m) g9 w    进入openssl源码目录。
' l2 G7 @# {. e; u( n& j5 `+ Q( ?5 C

  1.     cd x:/openssl, c6 o0 D# m7 b# a' |5 J
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:, ]5 V8 F6 i! }3 E7 S/ L4 i
    运行configure:& R( u4 E! o) F& O& ^

  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.asm9 b& v* T+ [$ q) ^# l
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands( w) s4 |1 T1 w9 |; _
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands0 _8 }. y0 d; f- w, E% }
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'
    ( X5 w3 R3 s- `* W6 C, f& z: _
  5. Stop.
复制代码
    $ S8 \) L; O5 P' w* \% J2 v$ X
    4 e9 U0 |  b8 T
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。

) V  r: F1 L6 g( }4 `9 e( @6 W; x

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

    创建Makefile文件:7 b" A9 M* [$ G9 Y1 [( Q: ]

  1.     ms/do_ms
    $ ]: a, `8 u" O* i8 E4 W# K
复制代码

    编译动态库:6 Q% ]/ K" {9 z8 `

  1.     nmake -f ms/ntdll.mak
    - C# ?+ {/ p8 v3 @3 M$ L9 V
复制代码

    编译静态库:
2 P! K$ P( J7 F# X

  1.     nmake -f ms/nt.mak
    ! W9 o* `  N5 W2 y0 p
复制代码

    测试动态库:
2 \0 N1 `" i* |& [

  1.     nmake -f ms/ntdll.mak test/ `( X& g1 D- b2 [
复制代码

    测试静态库:
6 ?2 ?' [6 w2 J4 r1 G$ J+ j

  1.     nmake -f ms/nt.mak test0 }) l0 J+ ~% R  z  ?1 ]
复制代码

    安装动态库:+ i' p4 U& T3 A2 Z& H( U3 V9 ]

  1.     nmake -f ms/ntdll.mak install
    9 w! H1 v2 e- d0 U, I
复制代码

    安装静态库:
! U4 l# F& V/ o

  1.     nmake -f ms/nt.mak install
    0 W( P( ^) Z  Z" a5 {$ }8 L
复制代码

    清除上次动态库的编译,以便重新编译:1 Q0 _* a& I" w/ {) q; i

  1.     nmake -f ms/ntdll.mak clean
    1 u+ w, d# r& \' G8 i
复制代码

    清除上次静态库的编译,以便重新编译:  X' O3 o5 f6 |; k4 {" }  Z

  1.     nmake -f ms/nt.mak clean
    , c  R$ B+ G# f+ S$ D* x1 L
复制代码

二、使用OpenSSL2 _8 O4 C3 F  t( p# L2 ?
    在VC中配置使用以上的函数库:
+ P2 r/ A" G: k' x" P    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。' k( W! B  y5 g' |
    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。6 l# `) F6 c+ o# j" J  i: r- V
    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。


3 h2 O, s( e8 f: ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-30 06:30 , Processed in 0.034818 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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