Неразрешенные внешние, несмотря на ссылку в zlib.lib
Я пытаюсь скомпилировать приложение, которое использует сжатие zlib в VС++ 2010.
Я получаю
error LNK2019: unresolved external symbol _inflateInit2_ referenced in function ...
сообщение об ошибке, которое не было бы необычным, если бы я не связывал lib. Я связываю библиотеку zlib статической версии.
Мне удалось получить такую же конфигурацию библиотек и заголовков, которые отлично работают в разных решениях, и поэтому это поведение неожиданно.
Любые идеи будут оценены.
UPDATE: Командная строка компоновщика
/OUT:"C:\Documents and Settings\Suthke\My Documents\Visual Studio 2010\Projects\SBRapGen2\Debug\SBRapGen2.exe" /INCREMENTAL /NOLOGO "zlib.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MANIFEST /ManifestFile:"Debug\SBRapGen2.exe.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Documents and Settings\Suthke\My Documents\Visual Studio 2010\Projects\SBRapGen2\Debug\SBRapGen2.pdb" /SUBSYSTEM:CONSOLE /PGD:"C:\Documents and Settings\Suthke\My Documents\Visual Studio 2010\Projects\SBRapGen2\Debug\SBRapGen2.pgd" /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE
ОБНОВЛЕНИЕ 2: Вершина компоновщика:
1>------ Build started: Project: SBRapGen2, Configuration: Release Win32 ------
1>
1> Starting pass 1
1> Processed /DEFAULTLIB:uuid.lib
1> Processed /DEFAULTLIB:msvcprt
1> Processed /DEFAULTLIB:zlib.lib
1> Processed /DEFAULTLIB:MSVCRT
1> Processed /DEFAULTLIB:OLDNAMES
1>
1> Searching libraries
1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\zlib.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\kernel32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\user32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\gdi32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\winspool.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\comdlg32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\advapi32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\shell32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\ole32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\oleaut32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\uuid.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\odbc32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\odbccp32.lib:
1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\msvcprt.lib:
1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\MSVCRT.lib:
1> Found @[email protected]
1> Referenced in SBRapGen2.obj
1> Loaded MSVCRT.lib(secchk.obj)
1> Found __imp__sprintf
1> Referenced in SBRapGen2.obj
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __imp__ceil
1> Referenced in SBRapGen2.obj
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __imp__free
1> Referenced in SBRapGen2.obj
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __imp__malloc
1> Referenced in SBRapGen2.obj
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __imp__printf
1> Referenced in SBRapGen2.obj
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __imp__fopen
1> Referenced in SBRapGen2.obj
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __imp__fread
1> Referenced in SBRapGen2.obj
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __imp__fwrite
1> Referenced in SBRapGen2.obj
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __imp__ftell
1> Referenced in SBRapGen2.obj
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __imp__fseek
1> Referenced in SBRapGen2.obj
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __imp__fclose
1> Referenced in SBRapGen2.obj
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found _mainCRTStartup
1> Loaded MSVCRT.lib(crtexe.obj)
1> Found ___report_gsfailure
1> Referenced in MSVCRT.lib(secchk.obj)
1> Loaded MSVCRT.lib(gs_report.obj)
1> Found ___security_cookie
1> Referenced in MSVCRT.lib(secchk.obj)
1> Referenced in MSVCRT.lib(gs_report.obj)
1> Loaded MSVCRT.lib(gs_cookie.obj)
1> Found __IMPORT_DESCRIPTOR_MSVCR100
1> Referenced in MSVCRT.lib(MSVCR100.dll)
1> Referenced in MSVCRT.lib(MSVCR100.dll)
1> Referenced in MSVCRT.lib(MSVCR100.dll)
1> Referenced in MSVCRT.lib(MSVCR100.dll)
1> Referenced in MSVCRT.lib(MSVCR100.dll)
1> Referenced in MSVCRT.lib(MSVCR100.dll)
1> Referenced in MSVCRT.lib(MSVCR100.dll)
1> Referenced in MSVCRT.lib(MSVCR100.dll)
1> Referenced in MSVCRT.lib(MSVCR100.dll)
1> Referenced in MSVCRT.lib(MSVCR100.dll)
1> Referenced in MSVCRT.lib(MSVCR100.dll)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found ___CxxSetUnhandledExceptionFilter
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(unhandld.obj)
1> Found __amsg_exit
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __imp____getmainargs
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __dowildcard
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(wildcard.obj)
1> Found __newmode
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(_newmode.obj)
1> Found _atexit
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(atonexit.obj)
1> Found __RTC_Terminate
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(_initsect_.obj)
1> Found __imp___cexit
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __imp___exit
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __XcptFilter
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __imp__exit
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __imp____initenv
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __IsNonwritableInCurrentImage
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(pesect.obj)
1> Found __initterm
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found ___xc_a
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(cinitexe.obj)
1> Processed /DEFAULTLIB:kernel32.lib
1> Processed /DISALLOWLIB:libcmt.lib
1> Processed /DISALLOWLIB:libcmtd.lib
1> Processed /DISALLOWLIB:msvcrtd.lib
1> Found __initterm_e
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found ___native_startup_state
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(natstart.obj)
1> Found __SEH_epilog4
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Referenced in MSVCRT.lib(atonexit.obj)
1> Loaded MSVCRT.lib(sehprolg4.obj)
1> Found __except_handler4
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Referenced in MSVCRT.lib(atonexit.obj)
1> Referenced in MSVCRT.lib(pesect.obj)
1> Referenced in MSVCRT.lib(sehprolg4.obj)
1> Loaded MSVCRT.lib(chandler4gs.obj)
1> Found __imp___configthreadlocale
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found ___globallocalestatus
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(xthdloc.obj)
1> Found __setdefaultprecision
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(fp8.obj)
1> Found __imp____setusermatherr
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __matherr
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(merr.obj)
1> Found __setargv
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(dllargv.obj)
1> Found __commode
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(xncommod.obj)
1> Found __imp___commode
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __imp___fmode
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __fmode
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(xtxtmode.obj)
1> Found __imp____set_app_type
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found ___security_init_cookie
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded MSVCRT.lib(gs_support.obj)
1> Found __crt_debugger_hook
1> Referenced in MSVCRT.lib(gs_report.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __NULL_IMPORT_DESCRIPTOR
1> Referenced in MSVCRT.lib(MSVCR100.dll)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found MSVCR100_NULL_THUNK_DATA
1> Referenced in MSVCRT.lib(MSVCR100.dll)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found "void __cdecl terminate(void)" ([email protected]@YAXXZ)
1> Referenced in MSVCRT.lib(unhandld.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __unlock
1> Referenced in MSVCRT.lib(atonexit.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found ___dllonexit
1> Referenced in MSVCRT.lib(atonexit.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __lock
1> Referenced in MSVCRT.lib(atonexit.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __imp___onexit
1> Referenced in MSVCRT.lib(atonexit.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __except_handler4_common
1> Referenced in MSVCRT.lib(chandler4gs.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __invoke_watson
1> Referenced in MSVCRT.lib(fp8.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Found __controlfp_s
1> Referenced in MSVCRT.lib(fp8.obj)
1> Loaded MSVCRT.lib(MSVCR100.dll)
1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\OLDNAMES.lib:
1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\zlib.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\kernel32.lib:
1> Found [email protected]
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found [email protected]
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found [email protected]
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found [email protected]
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found [email protected]
1> Referenced in MSVCRT.lib(crtexe.obj)
1> Referenced in MSVCRT.lib(atonexit.obj)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found [email protected]
1> Referenced in MSVCRT.lib(gs_report.obj)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found [email protected]
1> Referenced in MSVCRT.lib(gs_report.obj)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found [email protected]
1> Referenced in MSVCRT.lib(gs_report.obj)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found [email protected]
1> Referenced in MSVCRT.lib(gs_report.obj)
1> Referenced in MSVCRT.lib(unhandld.obj)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found [email protected]
1> Referenced in MSVCRT.lib(gs_report.obj)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found [email protected]
1> Referenced in MSVCRT.lib(atonexit.obj)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found [email protected]
1> Referenced in MSVCRT.lib(gs_support.obj)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found [email protected]
1> Referenced in MSVCRT.lib(gs_support.obj)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found [email protected]
1> Referenced in MSVCRT.lib(gs_support.obj)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found [email protected]
1> Referenced in MSVCRT.lib(gs_support.obj)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found [email protected]
1> Referenced in MSVCRT.lib(gs_support.obj)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found __IMPORT_DESCRIPTOR_KERNEL32
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Found KERNEL32_NULL_THUNK_DATA
1> Referenced in kernel32.lib(KERNEL32.dll)
1> Loaded kernel32.lib(KERNEL32.dll)
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\user32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\gdi32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\winspool.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\comdlg32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\advapi32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\shell32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\ole32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\oleaut32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\uuid.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\odbc32.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\odbccp32.lib:
1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\msvcprt.lib:
1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\MSVCRT.lib:
1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\OLDNAMES.lib:
1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\zlib.lib:
1>
1> Finished searching libraries
1>
1> Finished pass 1
1>
1>SBRapGen2.obj : error LNK2001: unresolved external symbol _deflateEnd
1>SBRapGen2.obj : error LNK2001: unresolved external symbol _inflateInit2_
1>SBRapGen2.obj : error LNK2001: unresolved external symbol _inflate
1>SBRapGen2.obj : error LNK2001: unresolved external symbol _inflateEnd
1>SBRapGen2.obj : error LNK2001: unresolved external symbol _deflate
1>SBRapGen2.obj : error LNK2001: unresolved external symbol _deflateInit2_
Ответы
Ответ 1
Если вы используете решение VS2010, предоставленное в contrib/знать, что оно прослушивается. Проект zlibstat определяет ZLIB_WINAPI, который согласно zlib FAQ используется для включения конвенции STDCALL. Просто удалите его из настроек проекта и перекомпилируйте lib.
Ответ 2
Эта ссылка была полезной для меня. Работали как шарм:
http://www.tannerhelland.com/5076/compile-zlib-winapi-wapi-stdcall/
Ответ 3
В моем случае я внес изменения
- Config → Linker → Input → Additional Dependencies
читать ucrt.lib;vcruntime.lib;msvcrt.lib;kernel32.lib
Это позволило libz построить под Windows 10 с помощью VS2015
Обеспечение типа сборки было /MD
Это было так, если для создания libpng (для чего требуется zlib), те же самые модификации позволяют успешно строить со старыми включенными файлами проектов по умолчанию.
Ответ 4
Несколько выстрелов в темноте:
Попробуйте запустить dumpbin /symbols zlib.lib
, чтобы увидеть, находятся ли символы в этой библиотеке так, как вы ожидаете (т.е. есть inflateInit2
там?).
Если сборка в настоящее время полагается на поиск пути в lib, чтобы найти zlib.lib
, попробуйте указать полный абсолютный путь к библиотеке, чтобы исключить компоновщик, обнаруживающий какую-то устаревшую библиотеку zlib где-то еще в вашей системе.
Также опубликуйте командную строку, используемую для компоновщика (из файла журнала сборки).
Update:
Вы можете увидеть поведение, подобное этому, если вы случайно смешиваете 32-битные и 64-битные компоненты (т.е. файл zlib.lib
построен для x86 и приложение создается для x64). Компилятор не жалуется на то, что не нашел файл lib, и не жалуется, что объекты в файле lib предназначены для другой платформы. Учитывая, что в вашем сообщении об ошибке упоминается символ без какого-либо украшения, я бы поставил на то, что компоновщик создает приложение x64, но, возможно, zlib.lib имеет объекты x86 (и, следовательно, там есть символ с именем _inflateInit2
, украшенный подчеркивание или, возможно, что-то еще).
(как в сторону - интересно, возможно ли смешивать объекты x86 и x64 в том же файле lib, если у них есть разные имена. Не то, чтобы я действительно это делал).
Ответ 5
Вы подтвердили, что прототипы функций zlib находятся в блоке extern "C"
? Если нет, то компоновщик будет искать функции с именами С++ - mangled, тогда как zlib.lib будет содержать невыпущенные имена C.
Ответ 6
Скомпилирована статическая библиотека zlib с использованием чего-то другого, кроме VС++ 2010?
Это недавнее обновление от VS2008/05?
Вы пытались перекомпилировать статическую библиотеку с помощью набора инструментов 2010 года?
Ответ 7
Имейте в виду, что порядок библиотек имеет значение. Предположим, вы хотите связать A.OBJ, B.LIB и C.LIB с входными файлами, указанными в этом порядке. Если C.LIB вызывает функцию в B.LIB, она не будет найдена (если она не была случайно вызвана из A.OBJ).
Может ли это быть источником вашей проблемы?
Ответ 8
Я обнаружил, что он связан OK в сборке Win32, но не с x64.
Ответ 9
Я столкнулся с той же самой проблемой, используя Visual Studio 2017. Я получил сообщения об ошибке, такие как:
error LNK2019: unresolved external symbol __imp__deflate referenced in function
error LNK2019: unresolved external symbol __imp__deflateEnd referenced in function
error LNK2019: unresolved external symbol __imp__inflate referenced in function
error LNK2019: unresolved external symbol __imp__inflateEnd referenced in function
error LNK2019: unresolved external symbol __imp__deflateInit2_ referenced in function
error LNK2019: unresolved external symbol __imp__inflateInit2_ referenced in function
Я следовал совету Майкла Берра, проверяя, содержал ли zlib файл следующие методы:
dumpbin /symbols zlib.lib
Вывод показал, что методы были, но Visual Studio все еще жаловался. В конечном итоге я загрузил последний стабильный выпуск zlib из их репозитория github, а затем скомпилировал его (используя консоль разработчика Visual Studio). Их инструкции напрямую не помогли, хотя в конце концов я нашел их MS Makefile, в котором содержалась команда, необходимая для запуска.
nmake -f win32/Makefile.msc
Загляните в их файл win32/Makefile.msc для получения дополнительной информации о процессе сборки.
Процесс сборки сгенерировал два .lib файла. Что мне действительно нужно в моем проекте, так это тот, который называется zdll.lib. (См. их файл документации DLL_FAQ.txt для информации об этом). Вернувшись в Visual Studio, мне пришлось вручную добавить файл в мой проект (НЕ, используя метод Linker --> General --> Additional Library Directories
, так как это вызвало другие проблемы.) Вы можете добавить их, щелкнув правой кнопкой мыши на объекте решения. (Не самый верхний элемент в списке, а второй элемент. На рисунке ниже мой проект называется Лассо, поэтому вы можете нажать на эквивалент в своем проекте.)
Перейти к: Добавить → Существующий элемент...
Затем выберите созданный файл zdll.lib.
Файлы Lib явно добавлены в проект Visual Studio
Ответ 10
в моем случае установите zlib-vc140-static-64
(v1.2.11) или zlib_native
(v1.2.11), используя NuGet в vs2017.