Windows环境下VS2010编译openssl库

转自:http://blog.csdn.net/sky101010ws/article/details/51682725

1. 配置编译环境

我们用VS2010来作为编译工具,使用VS2010对应的命令行进入

2. 配置编译文件和模式

切换到openssl编译目录,输入:

perl Configure debug-VC-WIN32 no-asm --prefix="E:\openssl-1.0.2e\build-debug"

debug-VC-WIN32表示Windows 32位系统,64位系统请换成debug-VC-WIN64A
Release版本去掉debug, 改为VC-WIN32或者VC-WIN64A
no-asm 表示不用汇编,不设置此属性,会导致编译不过

3. 生成编译配置文件

32位

ms\do_ms.bat

64位

ms\do_win64a.bat

执行这一步之后,在ms目录下会生成nt.makntdll.mak两个编译配置文件
nt.mak 用于生成静态lib库
ntdll.mak 用于生成动态dll库

4. 编译

静态库

nmake -f ms\nt.mak
nmake -f ms\nt.mak install

动态库

nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak install

编译完成之后就可以在build-debug目录看到编译生成的库了

5. 遇到的错误

Assembling: tmp32\sha1-586.asm
tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands
NMAKE : fatal error U1077: 'ml' : return code '0x1'
Stop.

出现该问题就是因为在第2步时没有加上no-asm属性


6、测试动态库:
    nmake -f ms\ntdll.mak test
    测试静态库:
    nmake -f ms\nt.mak test

    安装动态库:
    nmake -f ms\ntdll.mak install
    安装静态库:
    nmake -f ms\nt.mak install

    清除上次动态库的编译,以便重新编译:
    nmake -f ms\ntdll.mak clean
    清除上次静态库的编译,以便重新编译:
    nmake -f ms\nt.mak clean

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值