# zlib-VS **Repository Path**: chenjk10/zlib-VS ## Basic Information - **Project Name**: zlib-VS - **Description**: 从官网下载zlib源码,使用VS编译,暂时编译了VS2015对应的动态库和静态库 - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 7 - **Created**: 2019-09-13 - **Last Updated**: 2024-11-16 ## Categories & Tags **Categories**: utils **Tags**: None ## README # zlib-VS #### 介绍 VS2015编译zlib库,编译后生成的x86和x64库文件 编译过程:https://blog.csdn.net/chenjk10/article/details/101017777 **VS2015工程文件:** **zlib-VS\zlib-1.2.11\contrib\vstudio\vc14\zlibvc.sln** 工程生成库名修改为动态库zlib.dll、zlib.lib,静态库zlibstatic.lib **生成文件路径:** **x64动态库:** zlib-VS\zlib-1.2.11\contrib\vstudio\vc14\x86\ZlibDll(Debug|Release|ReleaseWithoutAsm) **x64静态库:** zlib-VS\zlib-1.2.11\contrib\vstudio\vc14\x86\ZlibStat(Debug|Release|ReleaseWithoutAsm) **x86动态库:** zlib-VS\zlib-1.2.11\contrib\vstudio\vc14\x64\ZlibDll(Debug|Release|ReleaseWithoutAsm) **x86静态库:** zlib-VS\zlib-1.2.11\contrib\vstudio\vc14\x64\ZlibStat(Debug|Release|ReleaseWithoutAsm) **zlib-VS\zlib-1.2.11org\contrib\vstudio\vc14\zlibvc.sln** 工程生成库名为默认:动态库zlibwapi.dll、zlibwapi.lib,静态库zlibstat.lib **生成文件路径:** **x64动态库:** zlib-VS\zlib-1.2.11org\contrib\vstudio\vc14\x86\ZlibDll(Debug|Release|ReleaseWithoutAsm) **x64静态库:** zlib-VS\zlib-1.2.11org\contrib\vstudio\vc14\x86\ZlibStat(Debug|Release|ReleaseWithoutAsm) **x86动态库:** zlib-VS\zlib-1.2.11org\contrib\vstudio\vc14\x64\ZlibDll(Debug|Release|ReleaseWithoutAsm) **x86静态库:** zlib-VS\zlib-1.2.11org\contrib\vstudio\vc14\x64\ZlibStat(Debug|Release|ReleaseWithoutAsm) 默认库名工程生成的文件复制了一份到目录:**zlib-VS\zlib\zlib-1.2.11**中,包含头文件、32位动态库静态库、64位动态库静态库,方便使用 **问题1:** error LNK2019: 无法解析的外部符号 _deflate error LNK2001: 无法解析的外部符号 _deflateEnd error LNK2019: 无法解析的外部符号 _deflateInit_ error LNK2001: 无法解析的外部符号 _inflateEnd error LNK2001: 无法解析的外部符号 _inflateInit2_ error LNK2019: 无法解析的外部符号 _inflate error LNK2019: 无法解析的外部符号 _inflateReset **解决方法:** 在使用zlib库的项目的属性-> C/C++-> 预处理器-> 预处理器定义 添加 ZLIB_WINAPI **问题2:** error LNK2026: 模块对于 SAFESEH 映像是不安全的。 **解决方法:** 在“项目属性->链接器->命令行->其他选项(D)”中添加/SAFESEH:NO 或者 在“项目属性->链接器->高级->映像具有安全异常处理程序”将“是(/SAFESEH)”修改为“否(/SAFESEH:NO)” *** **使用zlib库自带的VS工程有如上两个问题,使用cmake生成的VS工程编译的库没有上面两个问题** cmake工程使用绝对路径,工程路径: **x86** D:\GitProject\zlib-VS\zlib-1.2.11org\VS2015x86\zlib.sln **x86库文件** debug:**zlibd.dll zlibd.lib zlibstaticd.lib** D:\GitProject\zlib-VS\zlib-1.2.11org\VS2015x86\Debug release: zlib.dll zlib.lib zlibstatic.lib D:\GitProject\zlib-VS\zlib-1.2.11org\VS2015x86\Release **x64** D:\GitProject\zlib-VS\zlib-1.2.11org\VS2015x64\zlib.sln **x64库文件** debug:**zlibd.dll zlibd.lib zlibstaticd.lib** D:\GitProject\zlib-VS\zlib-1.2.11org\VS2015x64\Debug release: zlib.dll zlib.lib zlibstatic.lib D:\GitProject\zlib-VS\zlib-1.2.11org\VS2015x64\Release 文件夹**zlib-VS\zlib\zlib-1.2.11cmake**是cmake生成工程编译的库,使用更方便,包含头文件、32位动态库静态库、64位动态库静态库,方便使用 **zlib-1.2.12** zlib-1.2.12.zip为源码 zlib-1.2.12-bin 为生成的lib|dll|头文件,使用Desktop Qt 5.15.0 MSVC2019 32bit编译