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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL& y  j$ a! c, F. y- f8 J
    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。8 s" o, }. z" [, k3 J
    下载最新版本的Perl:http://www.activestate.com/,然后安装之。0 c. W3 x6 O0 T
    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。( l% W3 o0 z  N; ?2 V
    进入openssl源码目录。
- q1 q1 j; j2 M9 i

  1.     cd x:/openssl1 e8 i  E8 u) J( V
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:2 u- n/ O+ {+ j* N, J0 `
    运行configure:4 u  ]- x; T- H8 l4 X3 [" ?6 H# g  U) P

  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
    8 V. f, _2 ?$ i- d5 H- s3 t8 a
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands5 T3 c4 n$ ]. O' }1 g
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands& a2 g5 S" s0 r( \1 E
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'# `3 {' p2 G* @1 C( ]# Z
  5. Stop.
复制代码
    , k* f2 Y  @5 S- V5 N: Y
    * C; O) {. ^6 Q( w. l6 h- c' D# C
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。


& `3 o: f0 |- j! D% n, v

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

    创建Makefile文件:
& b0 C% _. x& R; W* t# R( p: t

  1.     ms/do_ms
    , ?# j- r# D& v4 w6 N4 U* ?9 Z& T
复制代码

    编译动态库:
9 M4 T3 \9 Y; n6 |( m0 ^

  1.     nmake -f ms/ntdll.mak8 u* e. T; f& r7 ^5 {& g
复制代码

    编译静态库:
% B3 c6 T. F/ v8 t( e7 o* f6 n

  1.     nmake -f ms/nt.mak' ^( Y5 s& H9 ?, c9 k2 b9 S1 O% B
复制代码

    测试动态库:, h7 U/ f$ y1 p- l( e

  1.     nmake -f ms/ntdll.mak test
    $ [! F3 X& h4 @# b# O
复制代码

    测试静态库:% i  o# \' p" l0 y* e  r& N, r

  1.     nmake -f ms/nt.mak test
    % S* x/ ?+ ^1 ~+ m% k
复制代码

    安装动态库:& `/ P/ r3 C" P5 f! C+ {

  1.     nmake -f ms/ntdll.mak install$ `3 r' x4 B; i8 _" K5 {
复制代码

    安装静态库:
/ Z" d2 S; s) ~( _; _8 V) N; P0 F! H! O6 W) C

  1.     nmake -f ms/nt.mak install8 u% @' k- Y/ Y4 U' p/ x3 \
复制代码

    清除上次动态库的编译,以便重新编译:4 U8 j5 g0 Q" R+ R  E

  1.     nmake -f ms/ntdll.mak clean
    # B( y7 L2 W9 L3 T. b9 t& W
复制代码

    清除上次静态库的编译,以便重新编译:
" V9 Q% N; Y2 [% N3 C! @9 d9 L

  1.     nmake -f ms/nt.mak clean1 R* W0 ~; _5 D
复制代码

二、使用OpenSSL
0 T/ v; r" J% G/ K1 v1 Z    在VC中配置使用以上的函数库:
& B; u: T1 w- M  g2 x    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
3 t: V$ i& e+ }8 x, U0 y    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
+ m. W% S2 [, F& B    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

% x0 ^' @3 b( A' S2 J
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 04:52 , Processed in 0.018894 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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