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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL
, j3 w" K! U: h    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。: J6 f" Y+ L* g# b9 |
    下载最新版本的Perl:http://www.activestate.com/,然后安装之。" S9 _; U* \+ e
    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。5 e6 w3 @9 O9 }8 @/ k! F
    进入openssl源码目录。; O* R+ r0 Y+ O& a* d

  1.     cd x:/openssl
    # K& ~  s0 M! d( J7 T$ o. F0 a
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
; q% n) Y- O% ]- s/ M    运行configure:8 o* \. Q% P0 c5 C! \

  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 c+ v5 V8 N6 @
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
    0 Y* S  X7 m4 d4 }# t. G
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands3 C6 E* {2 c8 R3 g
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'
    ; z- Q4 V& A) F
  5. Stop.
复制代码
    7 T9 m- p( t4 J5 O/ Y

    & \) s' w. \/ O3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。


' b3 h2 e8 n& ?

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

    创建Makefile文件:
  G6 [: G2 ]: H4 w9 X

  1.     ms/do_ms4 X) J8 P8 O1 M3 a9 |
复制代码

    编译动态库:
* A3 Y+ m1 {) z2 M3 K

  1.     nmake -f ms/ntdll.mak
    5 ?* D% ?- W" I/ y3 m  q" v
复制代码

    编译静态库:% ?  ~) P: T1 y. a

  1.     nmake -f ms/nt.mak" W! P' C+ p( r, F$ @
复制代码

    测试动态库:; r" Q7 Y3 q' [5 |- U: V5 V

  1.     nmake -f ms/ntdll.mak test
    ! {0 G) J, t6 y+ Q# q0 G2 P; D
复制代码

    测试静态库:
3 }1 i% `/ b" }3 [7 x

  1.     nmake -f ms/nt.mak test
    ! V& R3 f2 u" [6 m$ t$ U; A$ g+ I$ }
复制代码

    安装动态库:
3 Z0 K" O' P1 ?

  1.     nmake -f ms/ntdll.mak install$ M) O/ b- w+ m3 N! N5 q: X7 T
复制代码

    安装静态库:/ ?$ [% N' [& z  k1 w+ t" @

  1.     nmake -f ms/nt.mak install% ?: M5 ]' ^/ p/ m0 H" R
复制代码

    清除上次动态库的编译,以便重新编译:# J! d/ O$ y9 a  C  {. }! k8 Q2 K

  1.     nmake -f ms/ntdll.mak clean- H) \) J' n, V. v% s: t
复制代码

    清除上次静态库的编译,以便重新编译:
, e5 ]  \9 Y0 l6 Q' i5 E

  1.     nmake -f ms/nt.mak clean+ E* O9 D  Y6 W0 i
复制代码

二、使用OpenSSL
  K2 j( z* J1 }( p/ a    在VC中配置使用以上的函数库:
0 R2 w: W% t4 d5 t- V    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
  C' ^0 }, t/ E) |    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
  g' ?' S* F6 I( F; |! l1 r5 O    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。


8 R; M% K- q1 a9 l1 C  F
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-29 19:34 , Processed in 0.022644 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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