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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL
. ~. X; e1 |+ O" L# j    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。4 g5 H8 p  C+ {- W7 m. v# N
    下载最新版本的Perl:http://www.activestate.com/,然后安装之。
" W6 H: n) P3 k    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
; k0 V% w  D& @9 R+ {$ |' ?    进入openssl源码目录。
: t5 f1 t; B2 K3 P

  1.     cd x:/openssl
    - [& d' W6 e' W5 Q" S1 L9 n
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
0 [3 R8 `# S1 V+ D  O$ a    运行configure:
4 i! M2 A: t' o5 ]% ?

  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: O* C; w$ b8 ^7 v3 N* w
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands! ~9 M9 {" O# C- w9 m% t
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands9 o" X/ W3 D. u" a# `# B. C
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'
    1 ]$ {3 l1 v8 H! L: d7 h
  5. Stop.
复制代码
    % H4 n/ O& O! U. U- }: t" g4 q

    - U) p) w. |- Q, c$ C$ d3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。


6 M( E0 [1 H% t$ p

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

    创建Makefile文件:7 I. b. g) P# ]5 w9 s" J

  1.     ms/do_ms" O+ B5 z6 Y( z! ?3 k+ k
复制代码

    编译动态库:
9 g: J5 ?' |1 v& g

  1.     nmake -f ms/ntdll.mak
    " v, J: c) t( G6 u4 \( S
复制代码

    编译静态库:: s) ^. T; d- Z- t  d! o

  1.     nmake -f ms/nt.mak
    $ T- Y# ^( A5 N. |. ^* z3 ~  @! D5 i
复制代码

    测试动态库:
( t2 J6 g1 p' Y5 b- Q) P

  1.     nmake -f ms/ntdll.mak test
    , ~; [9 h) T. y" l4 P( t4 P+ ?
复制代码

    测试静态库:
7 C+ Y  Z# I/ K

  1.     nmake -f ms/nt.mak test3 _$ P" H8 \- N
复制代码

    安装动态库:
0 M9 ]: |$ k1 d7 l  W+ f

  1.     nmake -f ms/ntdll.mak install9 ~8 A( H' _. t  B! H* [+ W( c
复制代码

    安装静态库:
  u' R! o% f! V4 c* E6 a6 w  p

  1.     nmake -f ms/nt.mak install# Y1 ^; t9 I9 D
复制代码

    清除上次动态库的编译,以便重新编译:
4 P/ V. f) j7 U" H/ Q2 B7 T

  1.     nmake -f ms/ntdll.mak clean
    " R0 v# e" A' F9 Q8 Q0 K
复制代码

    清除上次静态库的编译,以便重新编译:# H! i( W  ]- p% k" O& F, ]& N- z7 ^

  1.     nmake -f ms/nt.mak clean
    % c+ K, ]6 R3 y& u- C1 H! V
复制代码

二、使用OpenSSL/ e* U& {' A7 X0 X" N/ O4 h
    在VC中配置使用以上的函数库:
- [8 Q$ e- V6 `* n3 |1 F% r' m    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
1 u5 S9 m; @  ^7 f    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
7 z- A; A+ _+ @; O) e    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。


7 B' _2 [% L$ k: D+ k6 h! W
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 08:21 , Processed in 0.018752 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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