1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/chenjk10-zlib-VS

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 3.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
KN-PC\KN Отправлено 07.09.2022 22:00 cd07d2f

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编译

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/chenjk10-zlib-VS.git
git@api.gitlife.ru:oschina-mirror/chenjk10-zlib-VS.git
oschina-mirror
chenjk10-zlib-VS
chenjk10-zlib-VS
master