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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL0 |) l1 [- o8 Q8 \6 _) P  q# ]' y
    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
6 [& z, C3 e2 G    下载最新版本的Perl:http://www.activestate.com/,然后安装之。
' @; N2 _4 q8 C. R    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。" C8 n8 \8 m9 z0 t% A
    进入openssl源码目录。. W. S, I- _/ G& |- m$ W; A

  1.     cd x:/openssl
    0 n9 z# j4 v" [: B2 A1 w5 N3 v
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
6 n5 T6 t$ f& s1 r. E; X# h* j    运行configure:6 O+ w$ X7 n: c2 @( o: ]3 c* 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
      H3 @2 S+ H2 C) y% |
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
    / X. u" t+ i( }% {
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands7 v, d9 k" |, A- A3 W
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'# W+ h* L3 h+ b) z6 m! C
  5. Stop.
复制代码

    1 v6 S& G. s5 n8 {/ k
    # z* Q% y3 M9 \( B7 p" M3 p" p; S3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。


" D2 E2 k  e. U2 v+ T( n

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

    创建Makefile文件:/ u  e. y$ ?: j0 V) E- @: a

  1.     ms/do_ms
    2 \8 I9 f% }) a
复制代码

    编译动态库:
7 o/ ]9 h' k6 x' p/ G6 H

  1.     nmake -f ms/ntdll.mak) ]( d. _% M' r' n6 v! o
复制代码

    编译静态库:
: I) I7 X  B4 m: t9 {6 u/ w

  1.     nmake -f ms/nt.mak+ r1 u" |- W" |
复制代码

    测试动态库:3 U7 [8 ^' u0 A  ^

  1.     nmake -f ms/ntdll.mak test
    0 C9 s/ j3 D( B/ z/ h( _
复制代码

    测试静态库:; U1 h( I/ O  |

  1.     nmake -f ms/nt.mak test
    ) m; o9 g$ v9 \7 \1 e1 K7 n1 ~
复制代码

    安装动态库:/ Q9 _+ u0 a9 |% P" F

  1.     nmake -f ms/ntdll.mak install. F. E0 W  v5 B: |9 L/ V
复制代码

    安装静态库:
# O/ q+ i, L* {) m4 K7 g( g

  1.     nmake -f ms/nt.mak install8 y! ]+ G& L; g2 p" @  Z
复制代码

    清除上次动态库的编译,以便重新编译:
; k; ^9 Z+ f% k% {9 V- W" t

  1.     nmake -f ms/ntdll.mak clean
    9 A$ s: g3 [8 A& a* j
复制代码

    清除上次静态库的编译,以便重新编译:4 j1 ~! q3 w2 F  A0 L

  1.     nmake -f ms/nt.mak clean
    4 z" F* Q, n9 l* D( b2 d
复制代码

二、使用OpenSSL; U+ g% @* F8 u! L
    在VC中配置使用以上的函数库:% C6 X" z8 K- f4 S! S5 B
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
) B+ M8 Q* S& G) l4 l+ Y5 l/ ?    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
. p0 `  C' L; W+ k    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。


+ S9 T4 p; U$ h) E+ X# |
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 06:11 , Processed in 0.017678 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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