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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL( R" t( a& g" m, ]2 {
    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
( V* Q4 W4 j, T    下载最新版本的Perl:http://www.activestate.com/,然后安装之。. {$ e1 Z5 N8 ?- E
    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。2 r& y- A- a6 k! }# k' u
    进入openssl源码目录。: \) \5 {- N" X

  1.     cd x:/openssl
    # O# T" J6 @* V* V0 D; y
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:" g' r& f1 ?) ^+ z( s
    运行configure:% [4 @: u% f5 }0 T& }" J

  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" _& K' m$ O9 ~) k2 D5 b* h" `
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
    % R) S* E  M( n7 o  C/ M2 t5 T* ]
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands+ g1 H+ C" A- A1 M' ~0 E0 T+ s
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1': u9 E' J9 l1 _
  5. Stop.
复制代码
    : a& W& I# ~& I4 p& ~
    9 \/ M4 y! r% L
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。

# m5 I! B& _1 Z5 y

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

    创建Makefile文件:  v6 J9 a* W5 J. d9 s( E

  1.     ms/do_ms
    1 G. e) j, I2 {# e, v% l
复制代码

    编译动态库:
' Y6 F) n; U$ P2 m0 w

  1.     nmake -f ms/ntdll.mak
    ' x1 _2 s7 y: g9 J* i
复制代码

    编译静态库:* h) N8 _7 E! Q: U& T) x( d

  1.     nmake -f ms/nt.mak9 u% W* `' ]3 Y: E% r. m
复制代码

    测试动态库:
3 w# m+ ?( L1 s$ N; ]) ?9 @

  1.     nmake -f ms/ntdll.mak test' _0 b. l- u  K, o, @6 f4 y$ M
复制代码

    测试静态库:
. e9 t5 \  T* l% }+ Z, u; q/ E

  1.     nmake -f ms/nt.mak test
    9 a( Z1 U& e+ h$ }. _/ F' j. A$ b
复制代码

    安装动态库:
7 Y- s) O) o% N$ J! S1 l+ ]

  1.     nmake -f ms/ntdll.mak install
    + |% v2 t9 v1 E) o5 a. |
复制代码

    安装静态库:9 T4 k  W1 N0 S

  1.     nmake -f ms/nt.mak install8 Z! T( J8 p. R8 B  w2 x
复制代码

    清除上次动态库的编译,以便重新编译:3 D: |# E/ y' N

  1.     nmake -f ms/ntdll.mak clean
    * c& h6 |1 R5 g) X
复制代码

    清除上次静态库的编译,以便重新编译:3 Q  ~# F* S' h; N0 [) O4 K

  1.     nmake -f ms/nt.mak clean
    " E( b8 U, j. i/ p+ w
复制代码

二、使用OpenSSL
% Y& R$ _9 s) \" ?/ w6 v    在VC中配置使用以上的函数库:- n. k' x& W% k( H& T- F$ S4 p
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
% r( h( ^# e1 M# X, o: O    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
0 Z3 ]8 s3 }8 R  V    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。


! I3 V' {( t$ l3 ~# ?6 N
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 07:39 , Processed in 0.018241 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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