找回密码
 注册
查看: 3775|回复: 0

在VC中编译和使用OpenSSL

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

一、编译OpenSSL
+ s3 j% ]5 `; d; ~    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
. U; u( i9 i& v5 o2 r4 M, q    下载最新版本的Perl:http://www.activestate.com/,然后安装之。
0 s7 y# l+ j: s4 r    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。8 y" b, H5 X+ M% z/ F
    进入openssl源码目录。9 A4 ^  T( T6 G; D4 B% t

  1.     cd x:/openssl5 k7 p0 n& E7 K" M1 x. r0 j
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:6 }) V. m+ Q: k
    运行configure:4 Y4 w8 ?9 X+ z0 N+ {2 j4 K

  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
    + D6 D8 G! _8 L: X/ v% p
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands2 F9 S( O3 c2 k4 d: W; \3 O
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands$ Y2 o) b! W* g& V: u& {
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'
    + \  `8 T8 T% w, U
  5. Stop.
复制代码

    + W% E% d; I. g* U( h0 h0 [8 Q! a7 a5 l; ~( H
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。


: Y; D# q; F  U- W4 E' u

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

    创建Makefile文件:
) f% p& y* J  T; f$ C5 f

  1.     ms/do_ms
    & k! f6 F, ?8 r0 M
复制代码

    编译动态库:0 g. \: ^7 j. N$ X, ]

  1.     nmake -f ms/ntdll.mak
    - S" g) ~8 P- e2 ~- y* \& m$ |
复制代码

    编译静态库:6 _* e7 u! F; ~6 e

  1.     nmake -f ms/nt.mak
    7 L% Y; x) e/ M- G$ T7 u
复制代码

    测试动态库:
( x; j) k. |- `% m, n

  1.     nmake -f ms/ntdll.mak test
    ! U: _. T  }, n2 j/ d$ U
复制代码

    测试静态库:
! F* |) y- M: a" R. Q, d; ^

  1.     nmake -f ms/nt.mak test
    6 _. w3 R9 i! g7 c1 w7 @
复制代码

    安装动态库:
2 g) H: j9 S/ ], C

  1.     nmake -f ms/ntdll.mak install/ u( P! F/ ~2 Y
复制代码

    安装静态库:
7 F* \* w, }2 q5 }* d

  1.     nmake -f ms/nt.mak install7 ?7 y6 y) @" ~; C8 K( C
复制代码

    清除上次动态库的编译,以便重新编译:. r4 B8 b$ @" }/ s8 x6 K; r

  1.     nmake -f ms/ntdll.mak clean. \5 d' j8 J" p8 {( M8 i
复制代码

    清除上次静态库的编译,以便重新编译:
1 q6 B6 X- D! i

  1.     nmake -f ms/nt.mak clean/ e+ {) S. i9 T1 Q8 c+ C
复制代码

二、使用OpenSSL
0 i: g' y/ K1 v# b! f0 @( S    在VC中配置使用以上的函数库:0 u) y% u" a) n
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。+ g# A4 D- X/ @2 L0 F
    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。! c" a; i# M1 c8 h5 M) u
    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

# ?3 ]- D+ m' V# t% u  B, U
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-10-1 19:25 , Processed in 0.017634 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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