openssl-1.0.0d-static-lib编译过程

openssl-1.0.0d-static-lib编译过程

openssl编译成静态库, 包含进工程的好处是可以避免系统中其他openssl版本的影响.

系统中有很多第三方的程序在使用openssl.

 

openssl工程下载点: http://openssl.org/source/openssl-1.0.0d.tar.gz

openssl-1.0.0d.tar.gz解压到 D:\openssl-1.0.0d

建立d:\openssl-1.0.0d-static-lib, 用于存放静态编译后的输出文件.

 

win32下编译openssl需要的perl环境: ActivePerl-5.10.0.1003-MSWin32-x86-285500.msi

下载点: http://download.csdn.net/source/3573478

 

运行Visual Studio 2005 Command Prompt

D:\openssl-1.0.0d>perl ConfigureVC-WIN32 no-asm --prefix=d:\openssl-1.0.0d-static-lib

 

D:\openssl-1.0.0d>perlConfigure VC-WIN32 no-asm --prefix=d:\openssl-1.0.0d-stat

ic-lib

Configuring forVC-WIN32

    no-asm          [option]   OPENSSL_NO_ASM

    no-gmp          [default]  OPENSSL_NO_GMP (skip dir)

    no-jpake        [experimental] OPENSSL_NO_JPAKE (skipdir)

    no-krb5         [krb5-flavor not specified]OPENSSL_NO_KRB5

    no-md2          [default]  OPENSSL_NO_MD2 (skip dir)

    no-rc5          [default]  OPENSSL_NO_RC5 (skip dir)

    no-rfc3779      [default] OPENSSL_NO_RFC3779 (skip dir)

    no-shared       [default]

    no-store        [experimental] OPENSSL_NO_STORE (skipdir)

    no-zlib         [default]

    no-zlib-dynamic [default]

IsMK1MF=1

CC            =cl

CFLAG         =-DOPENSSL_THREADS  -DDSO_WIN32 -W3 -WX -Gs0 -GF -Gy -nologo-DOPE

NSSL_SYSNAME_WIN32-DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE

EX_LIBS       =

CPUID_OBJ     =mem_clr.o

BN_ASM        =bn_asm.o

DES_ENC       =des_enc.o fcrypt_b.o

AES_ENC       =aes_core.o aes_cbc.o

BF_ENC        =bf_enc.o

CAST_ENC      =c_enc.o

RC4_ENC       =rc4_enc.o rc4_skey.o

RC5_ENC       =rc5_enc.o

MD5_OBJ_ASM   =

SHA1_OBJ_ASM  =

RMD160_OBJ_ASM=

CMLL_ENC=     =camellia.o cmll_misc.o cmll_cbc.o

PROCESSOR     =

RANLIB        =true

ARFLAGS       =

PERL          =perl

THIRTY_TWO_BIT mode

BN_LLONG mode

RC4_INDEX mode

RC4_CHUNK isundefined

 

Configured forVC-WIN32.

 

生成make文件

D:\openssl-1.0.0d> ms\do_ms

 

D:\openssl-1.0.0d>ms\do_ms

 

D:\openssl-1.0.0d>perlutil\mkfiles.pl  1>MINFO

 

D:\openssl-1.0.0d>perlutil\mk1mf.pl no-asm VC-WIN32 1>ms\nt.mak

 

D:\openssl-1.0.0d>perlutil\mk1mf.pl dll no-asm VC-WIN32 1>ms\ntdll.mak

 

D:\openssl-1.0.0d>ifx == x goto skipce

 

D:\openssl-1.0.0d>perlutil\mkdef.pl 32 libeay 1>ms\libeay32.def

 

D:\openssl-1.0.0d>perlutil\mkdef.pl 32 ssleay 1>ms\ssleay32.def

 

静态编译openssl

nt.mak 已经使用了 /MT 选项, 主工程中也要使用/MT选项.

nmake -f ms\nt.mak

 

测试编译结果

nmake -f ms\nt.mak test

 

看到测试结果如下, 全部通过测试

passed all tests

 

安装编译后的静态库

nmake -f ms\nt.mak install

安装后的openssl静态库目录如下:

D:\openssl-1.0.0d-static-lib>tree

卷 D250G1 的文件夹 PATH 列表

卷序列号码为 006400308CB1:520D

D:.

├─bin

├─include

│  └─openssl

├─lib

└─ssl


在工程中包含的库列表:

#pragma comment(lib, "User32.lib")
#pragma comment(lib, "Advapi32.lib")
#pragma comment(lib, "Gdi32.lib")
#pragma comment(lib, "Crypt32.lib")

#pragma comment(lib, "libeay32.lib")
#pragma comment(lib, "ssleay32.lib")

参考资料:

http://www.cnblogs.com/gleam/archive/2008/05/07/1187154.html


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值