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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL
9 i& u7 m; ^' a) _$ a+ D' B    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。6 V+ b5 s/ I) _1 O
    下载最新版本的Perl:http://www.activestate.com/,然后安装之。
( S. @7 X% b& c$ D* E/ ]    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。% F  ?7 N7 k  v' V. ?- `1 E
    进入openssl源码目录。; e$ F. L, k& z0 m* Z4 E

  1.     cd x:/openssl
    ( L9 }# f0 T$ r
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
! H& _; Q" f3 K  P- C) b" f    运行configure:1 H1 q$ P: @: t- q6 t5 s4 a* L

  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
    ) g* X: |* |- ]: P
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands/ ?, ]3 N3 b( Z" m2 d6 E) G8 ?
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands
    $ u: B2 o/ a4 L4 U9 z/ x6 l
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1', b5 X/ r: S/ y2 k) f4 |# x
  5. Stop.
复制代码

    : Y& Q2 V- }( E4 V
    3 Q0 _- W4 e6 }3 P8 E3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。


/ p! ^% w7 _  W( _$ e' C) ~& l

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

    创建Makefile文件:+ t# Y. b! U5 C+ ?! g- k

  1.     ms/do_ms+ Z) L/ O5 ^$ c5 \
复制代码

    编译动态库:; D$ r' r! K7 T$ C9 v- l) f

  1.     nmake -f ms/ntdll.mak
    $ X( e0 P  b. c  \4 G
复制代码

    编译静态库:  l1 P! e, G; V7 d6 q* R1 E

  1.     nmake -f ms/nt.mak
    9 f6 f3 h5 z2 d# J. P7 j
复制代码

    测试动态库:7 G, @5 u) U. q4 W2 i# g. j

  1.     nmake -f ms/ntdll.mak test
    : g9 @8 Z* g2 i. F
复制代码

    测试静态库:
9 o% ^! ^7 c, ^9 h9 B# N  f  Q

  1.     nmake -f ms/nt.mak test6 @& G0 s3 L( M  \+ r8 g3 Q. `8 J
复制代码

    安装动态库:
+ p+ v+ m: t# k% R

  1.     nmake -f ms/ntdll.mak install
    4 J' A8 k! h" ^9 A  g6 \$ b' b& @
复制代码

    安装静态库:; `2 n# ~( k& t! F2 ~1 w) ~

  1.     nmake -f ms/nt.mak install% F9 h$ c0 P, A8 Z
复制代码

    清除上次动态库的编译,以便重新编译:
: v! G# D3 j" ~1 ~( R

  1.     nmake -f ms/ntdll.mak clean
    " S( I' r5 i9 V
复制代码

    清除上次静态库的编译,以便重新编译:6 o4 m7 ^# z+ V) A

  1.     nmake -f ms/nt.mak clean+ l$ I& |; T" W4 Y6 u1 Y
复制代码

二、使用OpenSSL
/ Q  Y5 ^/ ?2 w" ^    在VC中配置使用以上的函数库:- W2 D7 {/ i8 D+ Z4 U
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。1 K, b# D0 }+ ]
    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。: z' [- K0 S; R5 \! d
    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

+ k( @# _, \( t: b! }4 Y) t
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-29 17:40 , Processed in 0.019959 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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