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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL
* N5 H: [/ _  E    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。2 V; @" _. E/ z0 |9 {# Q) h
    下载最新版本的Perl:http://www.activestate.com/,然后安装之。4 k; _2 P) Q$ c4 C9 H/ i, S: I% G
    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
! v: y, z" v* B: ~8 o2 C    进入openssl源码目录。, G" J6 S1 @7 p4 Z1 e

  1.     cd x:/openssl" a; U- g# s: M/ X4 h
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
$ f" f9 i$ m6 N+ h    运行configure:
; s# N% j5 W% g- c5 {$ 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.asm4 H5 l0 R! ]+ L
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands! i4 }) L! x1 V6 |8 s+ a
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands
    ' p+ h  T6 n0 u9 o1 E  Y+ Z
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'
    * t, z6 s! ]5 ]* z
  5. Stop.
复制代码
    % n0 a; h4 ~9 W

    3 o8 x* G0 @9 Y3 a' ^) H3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。

7 C( e' z6 t0 z2 P% t1 w

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

    创建Makefile文件:' Z& h4 \2 Q, \* Y0 ^

  1.     ms/do_ms8 P  H. A7 Y2 z- E6 J: c3 I: V- o
复制代码

    编译动态库:% i) {5 r+ ]7 p7 Z& u

  1.     nmake -f ms/ntdll.mak3 a; Q' r! J9 u5 f) V( ^
复制代码

    编译静态库:4 g# |8 I8 n; W+ [

  1.     nmake -f ms/nt.mak/ P/ J% _8 F* L. o% O/ h
复制代码

    测试动态库:+ Q# U8 i; v& d" o+ \; Y$ {

  1.     nmake -f ms/ntdll.mak test+ t4 k: Z& ~* {% V& a
复制代码

    测试静态库:
9 v& R/ i5 m6 Q! B. V

  1.     nmake -f ms/nt.mak test
    ! h% K2 I. o- h% J# W
复制代码

    安装动态库:0 X( T0 v/ {  Y. v, K  ~

  1.     nmake -f ms/ntdll.mak install
    ' Y2 I" Y- }. i+ W
复制代码

    安装静态库:* M) U  @, v; `1 k% |' ]! x1 u

  1.     nmake -f ms/nt.mak install
    ; A6 W. I1 k  K# s0 f7 S
复制代码

    清除上次动态库的编译,以便重新编译:
8 X, a. c; C3 e% s, l% q0 O

  1.     nmake -f ms/ntdll.mak clean  k$ S( g! p9 c- |
复制代码

    清除上次静态库的编译,以便重新编译:
! c" q  T. ]& N) J5 q( F

  1.     nmake -f ms/nt.mak clean- c- z9 ~! _0 S: {  ]5 b
复制代码

二、使用OpenSSL
1 q6 _  e5 F7 B! [% E; W    在VC中配置使用以上的函数库:
! B) C8 @+ u; }7 G    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
5 i1 H$ S: G- ~  h    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。( ]$ C0 k5 U& }  ?* L$ P) N
    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。


4 x' ~2 S, D2 q# i. @8 k
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-8 20:20 , Processed in 0.034814 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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