minizip error LNK2019: unresolved external symbol

编译使用到 zlibwapi.lib 库的项目是发现使用到的minizip API都出现link error
解决办法:右键项目-属性-配置属性-C/C++-预处理器定义中加入一行ZLIB_WINAPI即可

在C++中,要使用Minizip库(也称为zlib和libzip的组合)来解压缩ZIP文件,你需要先下载并包含minizip的头文件以及链接到相关的库。以下是一个简单的步骤: 1. **安装Minizip库**: - 访问Minizip的GitHub仓库 https://github.com/nmoinvaz/minizip 或者从其官方网站 http://www.winimage.com/zLibDll 下载适用于你的系统的版本。 2. **添加头文件**: 在你的项目中包含`minizip.h`和`unzip.h`,通常放在`include/minizip`目录下。 3. **编译链接**: 使用预处理器宏定义`ZLIB_WINAPI`(Windows)或`UNIX`(Linux/Mac)来适应不同的平台。例如,如果你在Windows上,可能需要这样编译: ``` g++ -I/path/to/minizip -lz your_file.cpp -o your_executable.exe ``` 4. **编写解压代码示例**(假设有一个名为`unzipper.cpp`的源文件): ```cpp #include "minizip/unzip.h" void unzip(const char* zipFilePath, const char* outputDirectory) { struct unzFile file; if (unzOpen(&file, zipFilePath) != UNZ_OK) { // 错误处理... } // 遍历压缩文件 for (int i = 0; ; i++) { int result = unzGoToNextFile(file); if (result == UNZ_END_OF_LIST_OF_FILE) break; char filename[UNZ_MAX_PATHNAME]; size_t filenameSize = sizeof(filename); if (unzGetCurrentFileInfo(file, NULL, filename, &filenameSize, NULL, 0, NULL, 0) != UNZ_OK) continue; // 创建目标路径 std::string outputFilePath = outputDirectory + std::string("/") + filename; // 解压当前文件 if (unzExtractFile(file, &outputFileStream, filenameSize, 0) != UNZ_OK) { // 错误处理... } } unzClose(file); } ``` 5. **运行解压程序**: 编译后的可执行文件就可以用来解压ZIP了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值