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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL0 C; `3 x* h6 N( G5 N
    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
1 z* u3 a% C+ }' _* @    下载最新版本的Perl:http://www.activestate.com/,然后安装之。3 }- R+ r+ G- O1 \
    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
4 N3 y  N5 Z: X) d- `2 c/ R# r0 Z/ M    进入openssl源码目录。4 n. q/ R  ]3 i( {1 q% x+ K' Z

  1.     cd x:/openssl
    . K$ |" l/ y8 p1 c9 }; Q9 y
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
* P& ^* J+ B; {  J; f    运行configure:
" `2 M. |: p# `1 n: O

  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
    % s( b- n3 i- X- C
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands9 R. L0 L2 ~* Q$ }0 G0 h3 u* \
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands
    : w+ [$ `7 q  t) U5 f- `6 v. M
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'
    ( N/ d7 U, E2 R1 \
  5. Stop.
复制代码
    " z7 u5 `3 e6 O
    + U" Q/ K5 t) ]; V3 p/ ~' t* R
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。


3 ?" u% V, ^9 U0 H$ `# `$ `

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

    创建Makefile文件:
* t4 U5 D6 X# {/ i  y- `

  1.     ms/do_ms! h$ z9 T  I) L' i: k( h: \
复制代码

    编译动态库:
+ ~& {7 Z" `! m( d5 l# b

  1.     nmake -f ms/ntdll.mak0 N6 R1 e1 G) G
复制代码

    编译静态库:3 L' T: J$ N( P7 s* Z' X* k( i

  1.     nmake -f ms/nt.mak
    ) z6 T. X6 Z! ]" }
复制代码

    测试动态库:
; H; ?  f7 }3 E9 h( m! U9 @

  1.     nmake -f ms/ntdll.mak test& L5 V2 r0 K4 t; E4 C' X: C
复制代码

    测试静态库:
0 O5 d$ Z: c( c% e, L7 o

  1.     nmake -f ms/nt.mak test+ H" ~' M6 O0 d. h* ~
复制代码

    安装动态库:
  a3 [) L3 ]& M2 V

  1.     nmake -f ms/ntdll.mak install
    * `' N% }) F) `% x
复制代码

    安装静态库:
/ m. R" O' q/ O

  1.     nmake -f ms/nt.mak install! Y1 D2 L- P2 x
复制代码

    清除上次动态库的编译,以便重新编译:
% O0 m7 U" f/ i# R

  1.     nmake -f ms/ntdll.mak clean5 L+ Q! E" R( w9 f# \6 _# e+ m
复制代码

    清除上次静态库的编译,以便重新编译:; T$ K1 y4 ^, [; _+ ?( b& X

  1.     nmake -f ms/nt.mak clean4 \* t! ]9 d- Q- L8 r( a
复制代码

二、使用OpenSSL( Y/ u6 h1 a' ~: j
    在VC中配置使用以上的函数库:! n  ?5 ^" l4 b$ A! j# b6 S  ]
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。. K) v) G) p. f/ {. z
    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
8 q/ G0 C) J! G) W; N' g$ R    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

8 @  b/ g, c2 l
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 07:42 , Processed in 0.018960 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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