zoukankan      html  css  js  c++  java
  • zlib 2.1.8 编译遇到的问题以及解决方法

    环境:win7 x64 + vs2013

    1.用vs2013打开zlib-1.2.8contribvstudiovc11zlibvc.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.8contribvstudiovc11x86

    ②将zlib-1.2.8contribvstudiovc11x86libDllDebug中的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

     

  • 相关阅读:
    PHP 扩展开发
    redis 简单动态字符串 SDS
    解决 call to undefined function mssql_connect 报错
    aws lnmp环境搭建 绑定域名
    PHP 内存管理 写时复制 垃圾回收
    CSS3详解:transform、transition
    详细图解window环境mongodb下载、安装、配置与使用
    介绍一款好用 mongodb 可视化工具
    安装MongoDB启动时报错‘发生系统错误2’的解决办法
    .md即markdown文件的基本常用编写语法
  • 原文地址:https://www.cnblogs.com/chevin/p/5676317.html
Copyright © 2011-2022 走看看