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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL+ r. w. x- k5 C$ d+ f& @
    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
; r+ m9 b5 W; X9 i+ O, J! Y    下载最新版本的Perl:http://www.activestate.com/,然后安装之。# }. U, |& e/ n' T4 b
    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。. c' u+ n$ x2 y4 G$ F: x3 E  o& P, v
    进入openssl源码目录。' u+ H: \9 S/ l$ I

  1.     cd x:/openssl
    ( A  C* U9 U4 T+ f/ T9 C
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
0 G, {+ G  z3 q+ g4 a    运行configure:" T$ i7 M* W/ P! _4 j

  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" M& S; H( q/ N
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands1 j0 E0 T3 t0 }5 X9 L4 ^) x
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands
    ' K; J) O. v/ g; w9 x4 f2 t
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'. D9 w- y/ A, ~- p. n8 @
  5. Stop.
复制代码

    * _% e  A. ~6 s% b2 h% z# S, w# }" q/ O4 U) x$ Q1 Y" f1 I
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。

5 K% f  ~5 f8 y+ w

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

    创建Makefile文件:6 r- L9 z" T8 f& k( c0 }

  1.     ms/do_ms
    2 |4 ?& K2 A" @+ @" W3 A+ N/ e
复制代码

    编译动态库:
- }# t; ~! T9 n) a: I4 }: N

  1.     nmake -f ms/ntdll.mak6 v% x6 W# m  h
复制代码

    编译静态库:
4 o9 r! `$ M+ {; v- H8 w( p

  1.     nmake -f ms/nt.mak1 h2 X4 C* A# R2 j' z4 d4 H
复制代码

    测试动态库:2 t2 O+ ~- C3 B; E, [& d* x

  1.     nmake -f ms/ntdll.mak test4 }. M( l# ]# m3 x
复制代码

    测试静态库:
2 X/ M; Z5 Z# g2 P$ ^

  1.     nmake -f ms/nt.mak test
    / ]* x- O$ A3 Q: h
复制代码

    安装动态库:7 X; T, L5 h& u% J) F$ ?4 Q

  1.     nmake -f ms/ntdll.mak install& Z$ X0 Z* W8 n% h8 M3 E7 w: [0 ?5 D
复制代码

    安装静态库:
  i  P) j! d. x! u5 f3 t

  1.     nmake -f ms/nt.mak install
    & w+ e* L2 |- t& u8 W7 Y3 ~
复制代码

    清除上次动态库的编译,以便重新编译:
3 w: f4 |2 Q( V: }; u

  1.     nmake -f ms/ntdll.mak clean
    $ W5 B- S) G  U  W: m! h  I& X) L
复制代码

    清除上次静态库的编译,以便重新编译:
# L3 q! W! ^( }7 y

  1.     nmake -f ms/nt.mak clean
    & n3 z, f- T7 K7 g4 U
复制代码

二、使用OpenSSL
% r# c0 z  k" I9 I$ t    在VC中配置使用以上的函数库:
+ R" |8 W( n5 W7 g( o    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。4 Y( j; P) B. S
    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
5 w! b+ N* M. W5 f2 j    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

* [: T6 r9 Z! R, ?8 `6 n, ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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