zlib, построение из исходников с помощью MSVS2022.
Где брать.
Адрес: https://github.com/madler/zlib
Клонируем:
d:\Cpp\Lib>git clone https://github.com/madler/zlib
Построение.
Открываем папку D:\Cpp\Lib\zlib\contrib\vstudio\vc14, в папке - решение zlibvc.sln, открываем в MSVS.
Win32.
Активизируем конфигурацию ReleazeWithoutASM, Win32.
Строим решение: жмем F7. В результате, в папке D:\Cpp\Lib\zlib\contrib\vstudio\vc14\x86 создается три директории:
- ZlibDllReleaseWithoutAsm - тут .dll и .lib для динамической сборки.
- ZlibStatReleaseWithoutAsm - тут .lib для статической сборки.
- TestZlibReleaseWithoutAsm - тут тест.
Win64
Активизируем конфигурацию ReleazeWithoutASM, Win64.
Строим решение: жмем F7. В результате, в папке D:\Cpp\Lib\zlib\contrib\vstudio\vc14\x64 создается три директории:
- ZlibDllReleaseWithoutAsm - тут .dll и .lib для динамической сборки.
- ZlibStatReleaseWithoutAsm - тут .lib для статической сборки.
- TestZlibReleaseWithoutAsm - тут тест.
Замечание.
По умолчанию определен макрос ZLIB_WINAPI (в свойствах проекта Configuration Properties - C/C++ - Preprocessor - Preprocessor Definitions), это означает, что библиотека будет построена с опцией WINAPI, т.е., stdcall. Если убрать определение ZLIB_WINAPI, библиотека строится с соглашением о cdecl. В приложениях, использующие ZLIB, должно быть такое же определение макроса ZLIB_WINAPI, как и проекте построения библиотеки.
Тестирование.
Открываем подпапку (в папках x86 и x64) TestZlibReleaseWithoutAsm, в командной строке набираем
testzlib.exe testzlib.pdb
... наблюдаем что-то вроде:
file testzlib.pdb read, 765952 bytes
total compress size = 136513, in 24 step
time = 31 msec = 0.031000 sec
defcpr time QP = 19 msec = 0.019000 sec
defcpr result rdtsc = 43c960f
total uncompress size = 765952, in 24 step
time = 0 msec = 0.000000 sec
uncpr time QP = 0 msec = 0.000000 sec
uncpr result rdtsc = 7b190d
compare ok
Использование.
Статическая сборка.
В проект включить заголовочный файл zlib.h, определить макрос ZLIB_WINAPI (или не определять, если библиотека была построена без определения этого макроса). Добавить в опции линковщика входной файл zlibstat.lib.
Динамическая сборка.
В проект включить заголовочный файл zlib.h, определить макрос ZLIB_WINAPI (или не определять, если библиотека была построена без определения этого макроса). Добавить в опции линковщика входной файл zlibwapi.lib.
Дополнительно, в выходной каталог проекта (там, где создается исполняемый файл) поместить файл zlibwapi.dll.
Комментарии
Отправить комментарий