您的位置:首页 > 其它

libzip 编译 minizip 运行时 CreateFile2 无法在Kernel32定位

2015-12-17 15:27 393 查看
编译libzip

使用vs打开(我用的是2012)zlib-1.2.8\contrib\vstudio\vc11目录下的zlibvs.sln,用这个会包含minizip代码,如果只想压缩和解压内存数据,可以用cmake来编译。

编译的时候会报:error LNK2026: 模块对于 SAFESEH 映像是不安全的。解决办法:右键 zlibvc-属性-配置属性-链接器-命令行 在后面加一行 /SAFESEH:NO

之后还会报错:.\zlibvc.def(4): fatal error LNK1118: “VERSION”语句中的语法错误。解决办法,直接定位到该错误,删除VERSION那一行即可

测试编译的libzip

直接编译项目中的minizip,一次性通过

然后copy libzip生成的zlibwapi.dll(在 x86\ZlibDllDebug目录下)到x86\MiniZipDebug中,直接运行该文件夹下的minizip.exe报错 CreateFile2 无法在Kernel32定位,没有错误的直接忽略,说明可以用了。

该错误解决办法在iowin32.c 29行那段宏用 #if _WIN32_WINNT >= _WIN32_WINNT_WIN8 和 #endif包裹,然后右键 zlibvc-属性-配置属性-C/C++-预处理器定义中加入一行 _WIN32_WINNT=0x0601即可,重新编译,并copy zlibwapi.dll之后 minizip.exe运行终于不报错了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: