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

在VC中编译和使用OpenSSL

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

一、编译OpenSSL- T8 p- K2 `8 v1 T; [5 v# w
    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。' B% |( T/ F2 l* o& Z3 Y
    下载最新版本的Perl:http://www.activestate.com/,然后安装之。
( F- q0 [" K" w- ?4 R' T+ X: `    下载最新版本的OpenSSL:http://www.openssl.org/,然后将源码释放的x:/openssl目录中。
( j, C! o( H; H0 u    进入openssl源码目录。6 m' [4 S* p" x$ V

  1.     cd x:/openssl. V( A) B- R7 J: }$ a! E
复制代码

    以下为参照该目录下的文件INSTALL.W32的执行过程:
0 w; T4 v, X$ ~' ?! D    运行configure:
0 I' ~4 x; U1 O1 f+ v

  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
    6 }: P; i# Y6 G3 C, E  l: G" J
  2. tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
    , V4 k% b7 n! ]$ J
  3. tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands. ]; [3 i+ a, ^* v) W
  4. NMAKE : fatal error U1077: 'ml' : return code '0x1'% w- t3 t6 A1 V- C+ ^4 {
  5. Stop.
复制代码
    ' S7 L; p- g/ w2 P
    9 c! N% i. R% |$ U2 u
    3、设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。

4 v0 t6 v4 ?8 @- U6 F! \

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

    创建Makefile文件:
1 Q9 {0 j8 E7 |7 Q1 Z" ~' C" \$ a

  1.     ms/do_ms
    * `- R: r+ G. k9 @; \+ z4 `. y7 n
复制代码

    编译动态库:7 b2 U9 [1 f# T$ \

  1.     nmake -f ms/ntdll.mak
    8 t% E. y( _+ P0 M: Y& v+ [3 |
复制代码

    编译静态库:
" e% r6 L8 W, e* X, X

  1.     nmake -f ms/nt.mak6 Q/ j, }1 t9 W9 Z! W/ h
复制代码

    测试动态库:2 d- z  D+ o8 o4 [& d

  1.     nmake -f ms/ntdll.mak test* \8 M4 p3 R8 ?4 {! z
复制代码

    测试静态库:
3 W/ Q+ w% e# z$ s* B: c0 p

  1.     nmake -f ms/nt.mak test1 Y; M! `* @" B$ }6 ^& p7 ~. K. |
复制代码

    安装动态库:
+ n. N% ~: q" [4 y3 H

  1.     nmake -f ms/ntdll.mak install! r. p, j# M( s7 a& r
复制代码

    安装静态库:( [, o% P4 U# u* U  u/ w

  1.     nmake -f ms/nt.mak install
    2 X! o8 Z1 O" f9 P; J
复制代码

    清除上次动态库的编译,以便重新编译:
: q$ q5 t! A1 f# H( m

  1.     nmake -f ms/ntdll.mak clean
    " o8 w/ }! O( \+ O
复制代码

    清除上次静态库的编译,以便重新编译:1 L2 Q% x8 N( O% `; V* E2 h

  1.     nmake -f ms/nt.mak clean+ L% o: V7 }7 n) \: Q
复制代码

二、使用OpenSSL
9 s# W1 ?% P- C& a$ ^    在VC中配置使用以上的函数库:7 X$ F( t5 o1 r2 }) P
    点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
; y2 z% r% [! F8 \' C8 q    在"Show directories for:"的"Include files"选项中新增目录"C:/openssl/include";"Library files"选择中新增目录"C:/openssl/lib"。
8 _5 W/ B2 F5 q3 x: ^+ @6 H+ Q8 z    然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。


0 h9 _7 f* e) R" ]+ |0 K
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-8 17:08 , Processed in 0.036154 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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