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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL- k' e& x1 P: Z) r: m$ q, Z
    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。  q& u) q/ J0 G6 z5 ^
    下载最新版本的Perl:http://www.activestate.com/,然后安装之。3 u% p. l" @$ @) {, Z" z
    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
- L8 ]0 z# N# x    进入openssl源码目录。& k$ ?9 {3 A; j+ |/ o- L

  1.     cd x:/openssl) z: N7 j! Y7 \
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:- U+ \7 C; X& n; q9 C# K
    运行configure:8 [/ \/ ]- P- L7 |. t) i

  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
    / E$ ^: }9 P) G" _9 i' h
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
    # Z& D6 X( o7 P: M1 z
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands
    ' M& ?0 X5 {* _8 W$ T2 w  o; ]
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'
    % [( X" W/ i- J+ P0 D) d/ v
  5. Stop.
复制代码

    0 R+ B" u7 F+ @9 Y# M# n# n4 v5 i2 c6 h  x: g7 @  M; f) c" w
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。


9 {6 d! Q" Z3 g0 @% Z1 p1 H; Z

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

    创建Makefile文件:) ~, g' j7 S% M' K( y5 ]4 G

  1.     ms/do_ms! H+ p$ f" o1 ~# v. d- m& j
复制代码

    编译动态库:
" I5 R$ B# t% t* R  f8 C' M

  1.     nmake -f ms/ntdll.mak; T" V2 ~: W( {9 ~0 @
复制代码

    编译静态库:* \* V2 p# ~. V) y' J+ J& D$ m

  1.     nmake -f ms/nt.mak5 j9 @, ]- G. X2 w; U' l1 u  t* T
复制代码

    测试动态库:
; q- C& n" `8 j$ g4 I1 F

  1.     nmake -f ms/ntdll.mak test: M- w9 K# z9 i& B; V
复制代码

    测试静态库:
' v: X" m$ y, [

  1.     nmake -f ms/nt.mak test
    3 v2 [2 v( O8 P* ~1 l2 ]1 _# s
复制代码

    安装动态库:: V5 X! L) [0 w

  1.     nmake -f ms/ntdll.mak install" c' k6 n" Z. }
复制代码

    安装静态库:
, s1 {4 ^' ~, p7 J9 h

  1.     nmake -f ms/nt.mak install
    " @) b1 J# y5 L5 t2 G9 U
复制代码

    清除上次动态库的编译,以便重新编译:3 L* q3 q( V6 n" I" a+ ]4 @( R

  1.     nmake -f ms/ntdll.mak clean
      q; o) b) ]9 `: u1 X+ I. A
复制代码

    清除上次静态库的编译,以便重新编译:
, [% `$ x# \' H) i+ P5 x# o

  1.     nmake -f ms/nt.mak clean# A( p2 F5 \; E" N3 W. p4 E
复制代码

二、使用OpenSSL
7 W4 U1 x! Y2 m6 c: x5 O, U. q; W    在VC中配置使用以上的函数库:+ v" {8 }" f: t9 U
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
7 m/ g1 ?  i" u    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
$ i( {& h: }/ ?1 \1 `7 ^    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

/ x4 O  F7 K4 @! ~/ J4 C# M) |5 }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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