win7编译zlib

win7编译zlib

http://www.zlib.net/
zlib-1.2.11

zlib-1.2.8\contrib\vstudio\vc10\zlibvc.sln 运行即可。
或者在zlib根目录下 命令行执行
nmake -f win32/Makefile.msc

zlib-1.2.11\contrib\vstudio\vc14

You don't need to build these projects yourself. You can download the
binaries from:
  http://www.winimage.com/zLibDll

Build instructions for Visual Studio 2015 (32 bits or 64 bits)
--------------------------------------------------------------
- Decompress current zlib, including all contrib/* files
- Open contrib\vstudio\vc14\zlibvc.sln with Microsoft Visual C++ 2015

用Visual Studio 2015 打开 遇到问题

Assembler code may have bugs -- use at your own risk
3>match686.obj : error LNK2026: 模块对于 SAFESEH 映像是不安全的。
3>inffas32.obj : error LNK2026: 模块对于 SAFESEH 映像是不安全的。
3>x86\TestZlibDebug\testzlib.exe : fatal error LNK1281: 无法生成 SAFESEH 映像。

debug win32

解决方法:
1.打开该项目的“属性页”对话框。

2.单击“链接器”文件夹。

3.单击“命令行”属性页。

4.将 /SAFESEH:NO 键入“附加选项”框中,然后点击应用。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

release win32

在这里插入图片描述
也成功了

debug x64 失败

在这里插入图片描述

出错

zlib 1.2.11 debug版正常,release版崩溃
这情况真TM无语。

最后通过搜索发现是inffast.c 这个文件的问题。
因为release版解压缩启用了汇编代码,而debug版没有。所以才会出现这个问题。

解决办法:
zlibstat 工程里面 去掉后边两个预编译选项。
在这里插入图片描述
ASMV
ASMINF
在这里插入图片描述
.打开zlibvc.sln,进入工程
选择编译生成Release发布版(勿选择Debug)。
再选中zlibstat,右键属性,配置属性,C/C++,预处理器,预处理器定义,编辑,删除ASMINF。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值