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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL. _% C# A+ b) N5 E; L3 _6 d0 ]
    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。' X4 F7 C" \3 y7 R7 o; c! d2 F
    下载最新版本的Perl:http://www.activestate.com/,然后安装之。
8 h" ?7 ^  w1 v) t2 a& l    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
: y" D% G  {4 |9 }& W) Y+ D    进入openssl源码目录。
* A4 Y- |8 P- j  `" q# z

  1.     cd x:/openssl$ A4 _0 y5 A! z, `, N' y
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
* S+ i1 b  s4 ]$ S  U    运行configure:
) P& ^1 y, ^" t0 @7 }1 `! f

  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
    " R0 l( E' f$ Z% q8 e
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
    # Q+ r4 h9 G" S; E+ v5 }/ E2 C
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands
    2 P: }" g0 x7 R
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'! {. v+ h: }( G- K2 O9 s
  5. Stop.
复制代码

    ) u- E! x0 ~1 j6 d& ~1 W' x+ a8 B
    ; f9 A: G4 W- z' e. v4 v* M/ h; @( @1 ~3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。


4 g8 U' [1 K4 u+ i, _) |

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

    创建Makefile文件:- }% X6 _4 F6 y

  1.     ms/do_ms- X  c0 S* o: C6 k/ G
复制代码

    编译动态库:
5 u' ~, U' x1 R4 U% E& \% P

  1.     nmake -f ms/ntdll.mak, z, x) d; [) p4 g  J9 E
复制代码

    编译静态库:
( o) g+ d" k0 A" k* V4 S

  1.     nmake -f ms/nt.mak: W/ S1 r8 c" i' Y! ]
复制代码

    测试动态库:9 H0 y4 q( @+ V* d0 y3 K. C6 M

  1.     nmake -f ms/ntdll.mak test8 ~  I/ m4 {- q+ s  Z$ h' o
复制代码

    测试静态库:& `. X, h5 \0 A

  1.     nmake -f ms/nt.mak test
    $ s6 `7 K4 K  |* D( a
复制代码

    安装动态库:" I+ o+ F! u( e- W& h

  1.     nmake -f ms/ntdll.mak install
    8 b) H7 H# M# i3 h4 h/ [- J
复制代码

    安装静态库:5 e! _7 F" f+ B) W" C5 s

  1.     nmake -f ms/nt.mak install
    * v* S5 K, w# y! N
复制代码

    清除上次动态库的编译,以便重新编译:( X" x, H/ l, d+ s! k

  1.     nmake -f ms/ntdll.mak clean& y3 Q) O2 Y6 |* |$ P! A1 e2 s
复制代码

    清除上次静态库的编译,以便重新编译:
0 L2 L1 m1 E6 q! R- I, o5 L1 ^

  1.     nmake -f ms/nt.mak clean- j/ p* f9 G4 A' Q/ V6 k/ d
复制代码

二、使用OpenSSL
1 e7 X! u8 K5 f3 [    在VC中配置使用以上的函数库:7 L& Q3 C, ?. t, {3 C9 C- C% q, t
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。9 w3 `4 g  j+ T
    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
7 L1 m, \7 h7 E$ g$ F; y* o1 v3 R    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。


) H% J8 p9 u: A  s( D2 O  F
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-13 17:42 , Processed in 0.017280 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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