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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL
! u5 I: e% l: d7 q, e    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。/ \& K) B* }' G& c
    下载最新版本的Perl:http://www.activestate.com/,然后安装之。$ R& ~0 ~$ |: F/ X
    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。$ @  C2 H; X0 ?; `( r" Z  d8 e
    进入openssl源码目录。
# A9 d4 u# A6 i

  1.     cd x:/openssl
    5 k  d+ b" Y; F  M0 @
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
" G" [: {  _# ^8 v/ `* y0 k    运行configure:
: B' @/ ]5 u  c  e

  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
    4 Q+ _' p9 X8 V! Q+ w5 {
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
    , n6 d/ a# U3 I  \+ l! a
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands! j% W2 Z/ ]# m4 F/ d
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'
    5 M4 Q2 O% o* R8 N
  5. Stop.
复制代码
    * W2 }  y& ~  s6 A( @# Q" K
    3 B, r3 O) m4 Z2 i7 v' _; e. X
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。

0 U2 n; b9 E' i

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

    创建Makefile文件:# _1 f5 b9 z* n3 {* [4 L/ o

  1.     ms/do_ms
    * s# J9 L! n5 L* ?9 \
复制代码

    编译动态库:
6 j  h. _  T' m: a

  1.     nmake -f ms/ntdll.mak6 A$ ^8 H9 E# N
复制代码

    编译静态库:3 z' M, P- W; m5 E1 e9 c

  1.     nmake -f ms/nt.mak
    ) o2 k% g$ s# N/ E- t0 f' o
复制代码

    测试动态库:
; S$ c2 |/ `+ S, W- {- A' o

  1.     nmake -f ms/ntdll.mak test5 l7 X2 F- J; _6 N$ {$ {7 B
复制代码

    测试静态库:) a$ c5 k7 x6 R1 U5 c6 \$ [

  1.     nmake -f ms/nt.mak test+ o# |0 O& J0 L
复制代码

    安装动态库:
: x  F8 U$ ^: Y2 z- V" m

  1.     nmake -f ms/ntdll.mak install( s# B8 K  i1 `* g9 e; w6 f
复制代码

    安装静态库:* ?2 y; [/ U6 q7 B  i

  1.     nmake -f ms/nt.mak install
    : {  ~$ h4 f8 Z
复制代码

    清除上次动态库的编译,以便重新编译:3 t% f; v7 V* f2 V* O7 F

  1.     nmake -f ms/ntdll.mak clean
    . N1 C8 A0 F, I1 h8 |3 O+ S% B
复制代码

    清除上次静态库的编译,以便重新编译:& R+ ~  j* M  D9 h# B# j* O7 `

  1.     nmake -f ms/nt.mak clean$ v) R- S: H- z- o' O5 {- X
复制代码

二、使用OpenSSL0 c$ Q( D; d: t: V9 i: t9 p/ F! N
    在VC中配置使用以上的函数库:
, E5 N1 b5 ?* Q7 h) w    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
. ?0 u8 V, g0 D- f    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。7 s1 c) q0 t* _; N5 Y# b& f
    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。


7 e  N1 e- H# [( Y' K* I2 j" \
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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