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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL/ `7 c8 z( ~; z! O# k! h4 @
    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
- h+ O, W: o, n3 ^    下载最新版本的Perl:http://www.activestate.com/,然后安装之。( K) u; n( V: ~- _; G
    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
+ v4 V6 K/ D4 s- U6 B2 |    进入openssl源码目录。
0 S; v2 ~$ S: Q1 m# m

  1.     cd x:/openssl
    9 g- E. @! K, O
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
; R, X5 i' D# f% E, D    运行configure:2 d# ?, v0 Y1 q9 \( p

  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
    " L5 J1 D% e9 G( q1 O
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
    , q) |: u& f. |- m" ]/ S
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands; Q5 G# J0 g/ P5 X
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'. d" X2 `8 z8 m4 h1 ~- B# W
  5. Stop.
复制代码
    # [: J& _/ b; U& i% a- v
    9 c2 b1 H) u7 V4 }! \/ K7 x
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。


! _5 |. Q  z" @! V

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

    创建Makefile文件:4 t$ c5 ]. J# P

  1.     ms/do_ms% j9 Z. m1 g- ]# r! k$ E$ V; P2 u
复制代码

    编译动态库:, L0 v! K* N8 R

  1.     nmake -f ms/ntdll.mak9 X6 O9 A1 a3 P
复制代码

    编译静态库:
6 e  w1 S3 ]; d! z1 L$ L: I

  1.     nmake -f ms/nt.mak
    ) y, ~" Z1 O; i# b& @5 Q
复制代码

    测试动态库:
9 O0 J& a% G" w# u! a

  1.     nmake -f ms/ntdll.mak test8 }# x$ O3 i$ o7 V
复制代码

    测试静态库:" k4 t. S, i& H, A" u& X9 K

  1.     nmake -f ms/nt.mak test
    1 G7 b7 m- W* L6 r: z
复制代码

    安装动态库:4 X" K( o" v. x+ o9 r

  1.     nmake -f ms/ntdll.mak install
    1 w6 _: W% w1 o
复制代码

    安装静态库:+ z# p" T# C8 p2 V8 n( Z

  1.     nmake -f ms/nt.mak install
    9 g& g: ]% ]  [+ u  I7 H* d& e# E+ `
复制代码

    清除上次动态库的编译,以便重新编译:
6 t+ ~) c! \4 h# u$ n) G

  1.     nmake -f ms/ntdll.mak clean
    % j0 s  F' W' M/ R2 z5 w
复制代码

    清除上次静态库的编译,以便重新编译:
9 |1 M+ S" u- o. J# [

  1.     nmake -f ms/nt.mak clean2 h& Q. b6 ^* J$ [
复制代码

二、使用OpenSSL
. ^( |2 I0 _2 S+ O5 G5 n    在VC中配置使用以上的函数库:
7 n4 I0 r; Z$ W! ~7 X& B; l+ y    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
5 }/ v0 P9 e( o7 v1 s& y    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
  |) h% T2 Z1 w* A) {3 F( P    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。


% l. {5 c. x& ?, Q5 O1 _
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-14 20:03 , Processed in 0.017615 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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