[Windows][转] zlib编译的一些问题

转自:https://blog.csdn.net/wangningyu/article/details/106078990

 

现在用的是QT+VS开发环境(仅用 VS编译器),但是被这个zlib坑死了,如果单独的库放在QT GCC没问题,放在VS也没问题,但QT + VS混合的环境下就各种奇葩问题了!

zlib uncompress unzReadCurrentFile解压内存直接溢出进汇编死循环了!!!!!!!

 

 

整理了一下思路和解决办法,先下载最新官方源码,打开zlib-1.2.11\contrib\vstudio\打开对应VS版本编译方法:

1、如果你需要支持加密接口,在unzip.c中注释这一行

#define NOUNCRYPT

 

2、另外一定要在VS C++ / 预编译处理,把两个宏都删除:

ASMINF 与  ASMV

这两个宏是汇编实现的代码,不然调用uncompress或unzReadCurrentFile解压时会进入infate_fast此处崩溃!

 

3、如果是VS+QT5的环境,需要添加一个宏:ZLIB_WINAPI

 

新建一个zlib121文件夹,把x86文件夹的两个lib与一个DLL拷贝出来放进去

 

再把依次拷贝以下文件到zlib121目录:

crypt.h

ioapi.h

iowin32.h

mztools.h

unzip.h

zconf.h

zip.h

zlib.h

 

一共12个文件,如果以后在需要的工程要用ZLIB,直接把zlib121拷贝到工程目录即可:

#include "zlib121\zconf.h"

#include "zlib121\zip.h"

#include "zlib121\unzip.h"

#include "zlib121\zconf.h"

#pragama comment(lib, "zlib121/zlibwapi.lib")

#pragama comment(lib, "zlib121/zlibstat.lib")

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值