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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL  f0 x8 m( d, I& w
    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
3 y# v, v3 o$ C- B# V6 p( S    下载最新版本的Perl:http://www.activestate.com/,然后安装之。* D4 z/ u" J3 E$ C: g6 J
    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。3 X9 R! ]6 t, C& ^7 \
    进入openssl源码目录。
# }+ z. i' S/ O( P

  1.     cd x:/openssl7 K9 e& e; W- M; ^8 i
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:/ i' c0 P, t2 e# @4 j) V  O. t
    运行configure:  B6 b$ C$ ^1 X$ q0 Z4 d

  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.asm6 C# o1 m) E" `
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands) g6 {1 B  E- Y0 W1 J, C) n7 r. O
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands
    6 P1 a9 \7 K" G6 X
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'
    . G8 D7 g6 y9 H* Q, b9 v! p* I2 y
  5. Stop.
复制代码

    6 z3 _: r8 ^. W
    : G8 B* k- L$ B2 n$ R# m0 P3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。

' V  v- H, [. k$ F7 c2 u' \+ }9 D

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

    创建Makefile文件:) z& g* G2 q! t/ `1 v' b

  1.     ms/do_ms
    5 B" ~- H+ f' n7 @2 G
复制代码

    编译动态库:
- f$ e9 F  Q3 H! {! p4 ^: m

  1.     nmake -f ms/ntdll.mak
    9 ]2 W  E9 T( r; U+ Z/ v9 x1 G* d1 _
复制代码

    编译静态库:/ L+ U  q! W0 j$ g! e

  1.     nmake -f ms/nt.mak
    5 q- X: {9 P+ A7 J# ^. ^
复制代码

    测试动态库:' ?0 C2 ~/ Z% ^% z' D1 h

  1.     nmake -f ms/ntdll.mak test
    " q& w( w+ L9 Y1 D5 C
复制代码

    测试静态库:$ F; J8 B3 y- E8 [3 t

  1.     nmake -f ms/nt.mak test
    8 v" U1 ]# \. s. V: m- W9 ~4 i
复制代码

    安装动态库:
. V9 D: D- t' p  c) {" z

  1.     nmake -f ms/ntdll.mak install  t. A: x# v( e) f6 P! B# _: {* d
复制代码

    安装静态库:
% c, _, h' K  J: p6 s+ ?( D1 f

  1.     nmake -f ms/nt.mak install
    . S  y$ x# \: \6 |2 D
复制代码

    清除上次动态库的编译,以便重新编译:
5 w& y9 h, O# ^/ X

  1.     nmake -f ms/ntdll.mak clean
    ! y8 F7 a) ~4 e$ G# T
复制代码

    清除上次静态库的编译,以便重新编译:5 q' n. A! L7 F' w( i3 x

  1.     nmake -f ms/nt.mak clean
    % K1 X0 {: ~, Q
复制代码

二、使用OpenSSL
4 p% p9 [" _, x* Q# c    在VC中配置使用以上的函数库:* D% N7 h6 A) v7 H" A* L$ S+ O' t# L
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
0 y; V1 l) }: k& N8 E    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。' x, J% O' F$ l. ?* u
    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。


# M/ u/ b( i3 ^8 d  I4 P
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-13 20:16 , Processed in 0.019388 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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