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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL8 S8 b: f4 j6 o, R: A! {
    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
! {) G3 z# L* V2 U. k2 Z+ I    下载最新版本的Perl:http://www.activestate.com/,然后安装之。
1 p# f2 E1 \: [# y( Y    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。% F: i( \! N5 Z; L- W" ?
    进入openssl源码目录。
) r. w! W/ {1 g7 J* E

  1.     cd x:/openssl
    ' S* m+ k4 V0 @4 y" Q2 p' U
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
' F+ I* q" w( C    运行configure:
* l3 _0 J8 S8 D9 s. q. `: v

  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
    ) N8 U! a2 ^  n/ v- B
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
    0 _2 _& A5 y: V; N
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands1 G& }' X, ~) p: o& V8 i  p
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'2 b6 o2 d2 H' T
  5. Stop.
复制代码

    6 R, j* w4 u1 E& K  {# B( N5 {0 @% J* R% {7 y6 D
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。


. }3 T0 [3 L- [+ T

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

    创建Makefile文件:
0 J, r" p! T6 y6 H* g  G2 n

  1.     ms/do_ms
      `9 B$ `/ b8 u
复制代码

    编译动态库:% a/ t5 N2 j1 o3 f; l: u# k- Q

  1.     nmake -f ms/ntdll.mak
      Z8 }) u3 N8 K, n
复制代码

    编译静态库:
) D6 b- r1 k- r5 e5 Z2 o

  1.     nmake -f ms/nt.mak
    7 g( O5 O2 h! h. P4 g. y. i& U
复制代码

    测试动态库:
# N8 L* \* z+ Q) {4 ?

  1.     nmake -f ms/ntdll.mak test* M+ |. D3 o8 h
复制代码

    测试静态库:" E& `7 a+ Z5 X/ s8 p+ v$ \3 j

  1.     nmake -f ms/nt.mak test3 e% i7 k3 I4 m; B
复制代码

    安装动态库:8 B% }7 [8 e0 j' }  E

  1.     nmake -f ms/ntdll.mak install+ X, G. N; V" s# T3 L) v2 ^
复制代码

    安装静态库:3 n. \5 H5 I# x% L. N

  1.     nmake -f ms/nt.mak install
    $ S& ~4 c: K3 ?4 r
复制代码

    清除上次动态库的编译,以便重新编译:
4 w  i9 ]! o7 V5 J: W1 o: }

  1.     nmake -f ms/ntdll.mak clean+ N3 h; B) R+ ^' j( E
复制代码

    清除上次静态库的编译,以便重新编译:
6 n6 ?& k4 U5 p3 }

  1.     nmake -f ms/nt.mak clean$ p1 d- |. d1 }) D* I$ g
复制代码

二、使用OpenSSL! D( u5 W$ w$ z
    在VC中配置使用以上的函数库:* V  h0 v; U. W$ \7 b8 Z3 }
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
! e) ], o" I& Q7 N2 N1 ^    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
3 ?% B1 A4 q) {$ W  P. M8 b    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

. I' }! }1 V" ]+ e7 q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-14 14:43 , Processed in 0.019602 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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