zlib 2.1.8 编译遇到的问题以及解决方法
环境:win7 x64 + vs2013
1.用vs2013打开zlib-1.2.8\contrib\vstudio\vc11\zlibvc.sln进行编译
包含了下面的的多个项目:
miniunz:一个解压的测试例子(下面所使用的测试使用用例)
minizip:一个压缩的测试例子
testzlib:使用zlib静态库,并测试压缩/解压效率
testzlibdll:使用zlib动态库,并测试压缩/解压效率
zlibstat:生成zlib静态库的项目
zlibvc:生成zlib动态库的项目
2.error LNK2026: 模块对于 SAFESEH 映像是不安全的。
解决办法:
①zlibvc-属性-配置属性-链接器-命令行 在后面加上 /SAFESEH:NO
②testzlib-属性-配置属性-链接器-命令行 在后面加上 /SAFESEH:NO
3.fatal error LNK1118: “VERSION”语句中的语法错误
解决办法:找到报错位置,zlibvc.def文件第4行的VERSION语句行,直接删除该行或者在行首加上;号进行注释。
4.成功编译后
①项目生成的文件都在zlib-1.2.8\contrib\vstudio\vc11\x86\
②将zlib-1.2.8\contrib\vstudio\vc11\x86\ZlibDllDebug中的zlibwapi.dll拷贝到MiniUnzipDebug文件夹中
③在命令窗口cmd中运行miniunz.exe
5.报错:无法定位程序输入点CreateFile2于动态链接库KERNEL32.dll上
解决办法:
①找到iowin32.c文件,在对应位置上增加宏判断#if _WIN32_WINNT >= _WIN32_WINNT_WIN8 和 #endif

②不要忘记这一步!!!
zlibvc-属性-配置属性-C/C++-预处理器定义 加入一行 _WIN32_WINNT=0x0601
6.
①清理解决方案!!!
②重新编译拷贝zlibwapi.dll到MiniUnzipDebug文件夹中
③在命令窗口cmd中运行miniunz.exe,正常运行并显示命令列表,如下(表示已经可以正常运行):

7.使用miniunz.exe对一个压缩文件1.zip进行解压测试,出现错误Cannot open 1.zip or 1.zip.zip错误,如下图

解决办法有两种:
第①种:屏蔽miniunz.c中对应的代码,重新编译miniunz项目

第②种:将iowin32.c文件第247行与374行的 FILE_CURRENT 都改为 dwMoveMethod即可,重新编译拷贝zlibwapi.dll
参考博客链接:
http://blog.csdn.net/drecik__/article/details/50342357
http://blog.csdn.net/drecik__/article/details/50372998
zlib 2.1.8 编译遇到的问题以及解决方法的更多相关文章
- Android 源码编译及常见错误及解决方法
最近要往arm开发板上移植android系统,大大小小的问题遇到了太多太多,都是泪啊.本人初接触嵌入式开发,对问题的根源不是太了解,不过好在每解决一个问题,便记录一下.话不多说,正式罗列问题: hos ...
- 源码编译apache报错的解决方法
源码编译apache报错的解决方法 问题介绍 在源码编译安装httpd时,./configure执行无错误,到make时就报错,在网络上搜索了很多文章,很多方法如换apr-util的低版本并不能很 ...
- c++函数模板作为类的成员函数,编译报错LNK2019的解决方法
为了使某个类的成员函数能对不同的参数进行相同的处理,需要用到函数模板,即template<typename T> void Function(). 编译时报错LNK2019 解决方法: 1 ...
- Cordova编译报AAPT错误的解决方法
因为项目中同时使用cordova-hot-code-push-plugin和phonegap-plugin-barcodescanner,编译时报错:AAPT: error: resource and ...
- Cordova - XCode10编译热更新插件错误解决方法!
操作系统:OSX10.14 XCode:10.1 热更新插件:https://github.com/nordnet/cordova-hot-code-push 这个热更新插件,在安卓下编译,没有问题, ...
- 16种C语言编译警告(Warning)类型的解决方法
当编译程序发现程序中某个地方有疑问,可能有问题时就会给出一个警告信息.警告信息可能意味着程序中隐含的大错误,也可能确实没有问题.对于警告的正确处理方式应该是:尽可能地消除之.对于编译程序给出的每个警告 ...
- eclipse3.7以后编译代码提示ambiguous 的解决方法
Eclispe3.7以后在使用可变函数时可能会遇到这种编译错误的问题 The method is ambiguous 正确的解决方法是: 在eclipse.ini -vmargs后面添加 -Dto ...
- Spring编译后没有xml配置文件解决方法
问题描述 在使用Maven来构建Spring项目的时候,使用下面代码来读取Spring配置文件. ClassPathXmlApplicationContext context = new ClassP ...
- ios5 xcode 4.2 中 release显示编译警告或错误的解决方法
转自:http://lizi464789754.blog.163.com/blog/static/1689370852011924113245778/ 由于 iOS5 xcode4.2 引入了ARC ...
随机推荐
- P1288 取数游戏II
luogu原题 最近刚学了博弈论,拿来练练手qwq 其实和数值的大小并没有关系 我们用N/P态来表示必胜/必败状态 先在草稿纸上探究硬币♦在最左侧(其实左右侧是等价的)的一条长链的N/P态,设链长为n ...
- 利用JQuery Mobile开发web app
什么是web app web app 是基于web的应用程序,是针对移动设备优化后的web站点,它具有 开发成本低——采用web开发技术,不需要考虑跨平台以及底层适配问题: 升级简单——不需要通知用户 ...
- 【专家坐堂Q&A】在 petalinux-config 中选择外部来源时,可将符号链路添加内核来源目录树
问题描述 作为 petalinux-config 菜单的一部分,现在可以将 Linux 内核指定为外部来源. 如果选择了该选项,可为内核来源目录树添加两个符号链路. 这会带来两个问题: 1. 符号链路 ...
- Codeforces 866C Gotta Go Fast - 动态规划 - 概率与期望 - 二分答案
You're trying to set the record on your favorite video game. The game consists of N levels, which mu ...
- Jenkins 总结
步骤: 1,安装Jenkins 2,运行Jenkins: java -jar jenkins.war --httpPort=8888 httpPort指的就是Jenkins所使用的http端口,这里指 ...
- ImageView控件有关问题
了解了一下ImageView控件,这个控件本身及其属性倒没有什么特别之处.只是在看<第一行代码>时,郭大神写到创建drawable-xhdpi文件有些问题,首先先说drawable和mip ...
- CSS的初了解(更新中···)
在前面,我们学习了html的结构.基本骨架.起名方式和选择器,接下来,我们就要学习CSS了. 首先,我们要知道CSS是什么. CSS 全称叫层叠样式表,作用是给html添加样式style,添加属性. ...
- Mac通过安装Go2Shell实现“在当前目录打开iTerm2”
先上效果图: 1.从官网下载最新的版本,不要从苹果商店下载,因为苹果商店的版本比较旧,只支持Finders10.6~10.10,不支持最新的版本 http://zipzapmac.com/Go2She ...
- centos6.8下如何升级git版本?
1. 安装开发环境 yum install -y curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-deve ...
- linux下关于mysql的命令的用法
所有关于mysql的命令都在/usr/bin/中, 使用 /usr/bin | grep 'mysql'可以列出这些mysql命令 导出数据库, 可以直接在 命令行中, 使用 mysqldump -u ...