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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL
6 W* b* f& a5 K* J1 M- k; R    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
% o' ?- j* Z) Z0 |; V    下载最新版本的Perl:http://www.activestate.com/,然后安装之。5 U  B2 g' e$ t0 ]
    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
8 [% P  G% V2 b" a5 v    进入openssl源码目录。
! S) e9 Q. `2 k* h2 R3 W; H

  1.     cd x:/openssl
    + S6 N4 c9 n  E, B8 D
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:) M" o# l) z# B1 N& l! E
    运行configure:9 {8 t. P' E  U6 Y/ \/ Q* R- h

  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. z7 P& o( n" ]1 H& D8 z' k. ^0 s
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
    ( F3 Q3 B4 n/ t9 G2 Q( R, u6 z1 X5 l
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands4 Z7 t2 d  p9 P" ]& n5 m% Z
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'
    + C  j: J5 ^, \4 [  c# x
  5. Stop.
复制代码
    . d& E  B$ f# k) e0 R6 N

    2 M3 R% _  P* u& K" s# l3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。


2 @8 D& k& }6 g8 j) V

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

    创建Makefile文件:
; ]1 A6 }: b! d, I, T

  1.     ms/do_ms5 q6 S9 b, d5 F4 L
复制代码

    编译动态库:
$ G* K$ @  ^8 y$ m

  1.     nmake -f ms/ntdll.mak4 M  S# N8 i0 n5 J) S/ E7 L" W: |
复制代码

    编译静态库:
$ A/ K$ t1 [; s+ z

  1.     nmake -f ms/nt.mak
    8 v% L: H4 l) [9 _
复制代码

    测试动态库:
6 V7 n8 k- h2 i

  1.     nmake -f ms/ntdll.mak test
    ! y# c. [! {8 S/ h9 i
复制代码

    测试静态库:+ k. a7 J6 d" \( X9 `4 c

  1.     nmake -f ms/nt.mak test
    # r9 J5 F8 J( m% N: K2 `7 v9 s
复制代码

    安装动态库:' C( h( j; ~8 O: k$ @, ^

  1.     nmake -f ms/ntdll.mak install6 \: J; i, V7 }( W
复制代码

    安装静态库:  @& ^1 W; M4 J. i, k

  1.     nmake -f ms/nt.mak install$ d1 i* ^5 w  `# p
复制代码

    清除上次动态库的编译,以便重新编译:
; n& \3 D, _$ U

  1.     nmake -f ms/ntdll.mak clean- @6 X( I: Q/ D3 x' v, y) k- `
复制代码

    清除上次静态库的编译,以便重新编译:. L1 g' c0 Z$ d: l; I/ @4 Q

  1.     nmake -f ms/nt.mak clean3 `7 u$ r: }+ Z7 g- |& i0 w' r
复制代码

二、使用OpenSSL, ]( U- W# @7 ^7 t: |
    在VC中配置使用以上的函数库:1 x* _% `- {3 [! Q
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。. ^, m& m  o, v) y' Q. v
    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。$ M+ N6 U0 K- G) v5 Y9 {; M
    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

7 q/ }' ?$ R5 m) {! n, w- L& s2 z
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-30 06:37 , Processed in 0.036328 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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