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。