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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL6 c1 n, R# P4 F# h. p0 X
    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
7 \/ ]) ]2 r" J3 c! ^( i    下载最新版本的Perl:http://www.activestate.com/,然后安装之。
9 m% l6 }! q4 m! T$ T    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
- g: o# i3 `2 h) I, Z5 J2 d* h    进入openssl源码目录。* b5 N  s  O  E

  1.     cd x:/openssl
      r# x1 U4 x# z1 V; K2 ?9 ^; m4 V
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
7 ]8 A4 h4 _/ P+ |7 z4 l6 c. f3 i8 o    运行configure:
" F. o; v5 ]. r* }3 @

  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 `, W' [. G: K" `% y" @2 O0 a
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
    8 P) e" |3 j0 G/ A+ V1 m; R
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands4 B: Q" X7 z9 e% C
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1') U: C0 s3 |' G. I2 l3 X" y2 o
  5. Stop.
复制代码

    + m2 ]) r) Z- X) ?& B9 }2 R% @4 b4 z/ @, p
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。

6 ?/ K8 x, n, d0 H. ]- a4 k+ N

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

    创建Makefile文件:' M9 X3 F; T4 X* y0 T4 u: \

  1.     ms/do_ms
    ! [# |$ P$ c9 \# q' ?8 t
复制代码

    编译动态库:, o0 W2 X9 c& F2 a

  1.     nmake -f ms/ntdll.mak3 Y- Z% K2 ?( Y6 e3 R
复制代码

    编译静态库:% w% x& S: o+ F7 X9 n1 X

  1.     nmake -f ms/nt.mak4 E* b# d8 H* D  |" L- u+ R
复制代码

    测试动态库:& R( S9 C$ `5 x6 A! v3 v* v

  1.     nmake -f ms/ntdll.mak test
    " @  w  Q1 ~8 V( [7 O5 \
复制代码

    测试静态库:0 ~; w& V. d0 A+ i) Y

  1.     nmake -f ms/nt.mak test: x& Q( n  F3 D4 T
复制代码

    安装动态库:: g/ Q4 w' Z1 }* z' ]

  1.     nmake -f ms/ntdll.mak install
    6 Q4 C# @2 t# g) ]( k
复制代码

    安装静态库:
2 ^( K, B6 a" d, H2 T

  1.     nmake -f ms/nt.mak install  S3 F, l; i: R! p- b
复制代码

    清除上次动态库的编译,以便重新编译:
, r! Z% Y0 F/ w4 J+ m0 d1 Q, `, ]

  1.     nmake -f ms/ntdll.mak clean
    / d2 r2 K% ~' }# ?: B) m
复制代码

    清除上次静态库的编译,以便重新编译:- Z# k# r6 _2 O( N. R& H

  1.     nmake -f ms/nt.mak clean0 g9 E- }; H5 ]
复制代码

二、使用OpenSSL
3 |* S; C) P# V  E& p- `    在VC中配置使用以上的函数库:
0 O: o# o" G  k9 E# V  H+ o5 D    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
+ J- l5 f/ `, D) ^( Q$ X- H# w    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。: o# L* |3 A  @; `
    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

) P: h1 X8 v. E. }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-18 22:09 , Processed in 0.016154 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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