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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL( w7 G- F  G, u8 g( [1 v
    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
: ^; H& W. f& X5 t( R/ d" X    下载最新版本的Perl:http://www.activestate.com/,然后安装之。3 [5 u( K: G8 f- @3 }
    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
2 B, A0 ]( e  I& B$ K( _    进入openssl源码目录。; ]* Q1 \+ g7 v/ R! i. _

  1.     cd x:/openssl. H/ \( j9 j9 c; D/ G' Q
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
5 H: B: L& J% R    运行configure:
! J: E" B* H: ?* @

  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! g  b* W  d: F7 f% ?
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands6 w, C9 i* O8 W9 ~
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands
    6 M  R( r* |0 T5 z8 n/ F; S4 ^
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'
    2 B# |8 H4 l- a4 i& s9 w- @4 B
  5. Stop.
复制代码

    - H9 c$ P% |6 f/ H; z5 s+ G' w0 j# S6 d- [: i) E
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。

2 Y& g) _: ~; q

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

    创建Makefile文件:
- w9 ]- ]1 ]2 M, s( h

  1.     ms/do_ms) M# Y  w# V2 K
复制代码

    编译动态库:. s+ b6 Z. \0 s1 [" A2 s5 M; B

  1.     nmake -f ms/ntdll.mak
    # d. `% f. M0 W/ y
复制代码

    编译静态库:) r, ~5 K& g$ ^* H# A2 p+ K# z

  1.     nmake -f ms/nt.mak* B7 `) t% x  s: |/ U2 o
复制代码

    测试动态库:. p+ s- H& X1 @8 w8 T, g6 N

  1.     nmake -f ms/ntdll.mak test
    5 P" T/ Q6 y7 Y- Y& U: }. z" F0 {( H
复制代码

    测试静态库:! z0 B- X. n0 G0 Y" e9 r

  1.     nmake -f ms/nt.mak test" @% U* ^: }+ n
复制代码

    安装动态库:
; t9 ?! v8 O3 |2 p; C% W

  1.     nmake -f ms/ntdll.mak install
    3 [; Y6 r8 N! m8 G3 b
复制代码

    安装静态库:; z" X* L6 n8 `! {

  1.     nmake -f ms/nt.mak install
    ) P* d! D  \' p
复制代码

    清除上次动态库的编译,以便重新编译:
/ d6 K% C. R6 q3 g

  1.     nmake -f ms/ntdll.mak clean0 _7 r' \* V/ w- ~" c! \
复制代码

    清除上次静态库的编译,以便重新编译:0 |" [# @# Y. d1 a5 F

  1.     nmake -f ms/nt.mak clean3 M1 h; ^9 m1 H
复制代码

二、使用OpenSSL7 ]& q2 ^: @- |9 T, ~
    在VC中配置使用以上的函数库:
; }+ d- h5 E5 @. Y; p1 N) Q1 r    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。6 `  _5 ?+ G- O. ]+ Z# F
    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。4 Q  r# Y8 |2 x# q
    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

! I, j* k/ D0 J; v, l
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-4 23:53 , Processed in 0.014337 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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