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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL
, Y4 W8 B5 k6 A5 H+ A7 {    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。8 P' ]4 f# m, l6 G9 m/ O* l/ ^
    下载最新版本的Perl:http://www.activestate.com/,然后安装之。
% I! Y4 g+ F# V' x' ]    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
/ F9 m3 B1 p& s    进入openssl源码目录。7 v, W2 f0 A/ f  Z

  1.     cd x:/openssl: c8 G; f! M2 W+ w8 J
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:" x/ I" i' E, y; g6 _
    运行configure:5 b/ G/ T+ o1 _8 x

  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
    ; D$ ?/ p4 |9 x. H5 p* u! C
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
    ( B$ F7 M' U. O
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands9 Z( Z* |5 \4 ^  E; }
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'
    - s2 T! Q, z) O# z0 k
  5. Stop.
复制代码
    / z0 `% v8 F! R4 `1 q! T: ]# e
      i% a( R; E' p; f2 W1 A8 h
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。


/ a) Q1 h. u; l5 N; {% u

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

    创建Makefile文件:
0 Q( D. a- Q, V3 Q6 ^

  1.     ms/do_ms( T. f% Y+ V, Q" I2 N
复制代码

    编译动态库:
1 ]" ?" G3 _( Q! K! e) A" r: i

  1.     nmake -f ms/ntdll.mak
    / X& X: b+ [  f$ ~. q7 m% {
复制代码

    编译静态库:
. h9 B* e# A' B( r% `5 p3 ]/ m. G

  1.     nmake -f ms/nt.mak: v1 n' o- M5 \/ y7 R
复制代码

    测试动态库:
; m. x' [/ m5 p: |5 {8 c/ \

  1.     nmake -f ms/ntdll.mak test
    7 J) Z- n; m( }7 k
复制代码

    测试静态库:* H, O( [* |( ~) B; p. d% j7 L1 A

  1.     nmake -f ms/nt.mak test
    * M- F% m. w; p/ f! B
复制代码

    安装动态库:
8 j' X1 L) |" @: M8 `5 g% F; G

  1.     nmake -f ms/ntdll.mak install6 f- g9 }# o9 s+ x8 k0 K$ z- N
复制代码

    安装静态库:
. r: h: P& `2 E( D

  1.     nmake -f ms/nt.mak install
    $ S* r& [) b8 i  h2 v
复制代码

    清除上次动态库的编译,以便重新编译:
) }) p: p0 E  I9 i3 q: C5 f

  1.     nmake -f ms/ntdll.mak clean
    3 n* t' {- J: n9 e% t4 O% L
复制代码

    清除上次静态库的编译,以便重新编译:" m& s: u$ I! G/ x6 Z0 y; g

  1.     nmake -f ms/nt.mak clean$ c6 `( I0 _6 U! c
复制代码

二、使用OpenSSL& b/ q8 N4 S% T" i" J
    在VC中配置使用以上的函数库:4 |" |6 \  {1 g$ \0 W# p$ F
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。/ o: f2 a( y) }3 e2 z, A% M: t
    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
6 C+ F5 p. w- s) d" F    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

2 j4 g' K  _, x7 L
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-8 19:35 , Processed in 0.035947 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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