Problem z biblioteką libzip w Visual Studio 2017
Ostatnio zmodyfikowano 2022-11-22 21:51
gonskabalbinka Temat założony przez niniejszego użytkownika |
Problem z biblioteką libzip w Visual Studio 2017 » 2022-11-20 19:45:15 Witam Chciałbym napisać program operujący na plikach zip. Pobrałem bibliotek zlib i libzip. Postępuję zgodnie z instrukcjami ze strony: https://learn.microsoft.com/en-us/cognitive-toolkit/setup-buildzlib-vs17 To dotyczy kompilacji bibliotek przy pomocy wiersz polecenia Native Tools. Wszystko idzie dobrze do pewnego momentu. Podczas polecenia msbuild libzip.sln /t:zip /P:Configuration=Release otrzymuję następujące błędy: zip_error_strerror.obj: error LNK2019: nierozpoznany zewnetrzny symbol zError przywolany w funkcji zip_error_strerro
zip_error_to_str.obj: error LNK2001: nierozpoznany symbol zewnetrzny zError zip_filerange_crc.obj: error LNK2019: nierozpoznany zewnetrzny symbol crc32 przywolany w funkcji _zip_filerange_crc
zip_source_crc.obj: error LNK2001: nierozpoznany symbol zewnetrzny crc32 zip_source_pkware.obj: error LNK2001: nierozpoznany symbol zewnetrzny crc32 zip_string.obj: error LNK2001: nierozpoznany symbol zewnetrzny crc32 zip_source_deflate.obj: error LNK2019: nierozpoznany zewnetrzny symbol deflate przywolany w funkcji compress_read zip_source_deflate.obj: error LNK2019: nierozpoznany zewnetrzny symbol deflateEnd przywolany w funkcji deflate_compr ess zip_source_deflate.obj: error LNK2019: nierozpoznany zewnetrzny symbol inflate przywolany w funkcji deflate_decompre ss zip_source_deflate.obj: error LNK2019: nierozpoznany zewnetrzny symbol inflateEnd przywolany w funkcji deflate_decom press zip_source_deflate.obj: error LNK2019: nierozpoznany zewnetrzny symbol deflateInit2_ przywolany w funkcji deflate_co mpress zip_source_deflate.obj: error LNK2019: nierozpoznany zewnetrzny symbol inflateInit2_ przywoeany w funkcji deflate_de compress fatal error LNK1120: liczba nierozpoznanych elementow zewnetrznych: 8
Nie wiem jak te błędy naprawić. Wiem, że nie muszę bawić się w tworzenie bibliotek tylko pobrać pakiety i zainstalować za pomocą narzędzia nuget z poziomu projektu, ale i ten sposób nie działa. Kiedy korzystam z nugeta i próbuję otworzyć plik zip za pomocą funkcji zip_open() znowu dostaję komunikat o nierozpoznanym symbolu zewnętrznym. Proszę o pomoc nie mogę sobie z tym poradzić, siedzę nad tym już od kilku dni. |
|
DejaVu |
» 2022-11-20 20:03:56 To są błędy linkera, tj. nie linkujesz do projektu biblioteki. Jedyne co robisz to dołączasz pliki nagłówkowe, które wiedzą jakie funkcje są dostępne w bibliotece, ale brakuje informacji 'jak one są zbudowane/zaimplementowane'. |
|
gonskabalbinka Temat założony przez niniejszego użytkownika |
» 2022-11-20 20:14:02 No tak, ale ja tych funkcji nie napiszę, one powinny być już dostarczone w pakiecie libzip. Jest jakiś sposób na naprawienie tych błędów. |
|
pekfos |
» 2022-11-20 20:23:00 Brakujące nazwy są z biblioteki zlib. Jeśli to wszystkie błędy, to nie podałeś tej biblioteki do linkera.
PS: Jeśli nie rozumiesz komunikatów błędów, to przestaw ich język na angielski. Wtedy przynajmniej my będziemy je rozumieć ;) |
|
gonskabalbinka Temat założony przez niniejszego użytkownika |
» 2022-11-20 21:12:19 W jaki sposób zapodać bibliotekę do linkera? Nie wiem jak to zrobić. Szukam i nie mogę znaleźć |
|
DejaVu |
» 2022-11-20 21:58:50 |
|
gonskabalbinka Temat założony przez niniejszego użytkownika |
» 2022-11-21 18:08:10 No więc próbuję i nie mogę tego zrobić. Ja robię to w środowisku tekstowym. Proszę o jakąś pomoc, bo naprawdę chciałbym się zająć plikami zip a nie kompilacją bibliotek. |
|
pekfos |
» 2022-11-21 18:37:10 Postępujesz według instrukcji? CMake nie powinno pozwolić skonfigurować libzip bez znalezienia zlib. Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) (Required is at least version "1.1.2")
Po wykonaniu INSTALL.vcxproj powinieneś mieć zbudowanego zliba w katalogu podanym w CMAKE_INSTALL_PREFIX. Upewnij się że jest. Biblioteka z tego katalogu powinna się pojawić w logach z budowania libzip (w moim wypadku C:\stuff\e\lib\zlib.lib): Link: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\link.exe /ERR ORREPORT:QUEUE /OUT:"C:\Users\admin\Desktop\libzip-1.9.2\build\lib\Release\zip.dll" /INCREMENTAL:NO /NOLOGO advapi32. lib bcrypt.lib C:\stuff\e\lib\zlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32. lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /P DB:"C:/Users/admin/Desktop/libzip-1.9.2/build/lib/Release/zip.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:/Users/admin/Desktop/libzip-1.9.2/build/lib/Release/zip.lib" /MACHINE:X64 /machine:x64 /DLL zip.dir\Rele ase\zip_add.obj Spróbuj usunąć wszystkie wyniki z budowania libzip i zacząć od nowa. Jeśli wcześniej kombinowałeś coś dziwnego to może wciąż nie działać mimo że teraz robisz wszystko dobrze, bo CMake zapisuje różne rzeczy w plikach cache. Jak wciąż nie będzie działać, podaj wszystkie logi. |
|
« 1 » 2 |