Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z biblioteką libzip w Visual Studio 2017

Ostatnio zmodyfikowano 2022-11-22 21:51
Autor Wiadomość
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:
C/C++
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.
P-179771
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'.
P-179772
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.
P-179773
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ć ;)
P-179774
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źć
P-179775
DejaVu
» 2022-11-20 21:58:50
P-179776
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.
P-179777
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.
P-179778
« 1 » 2
  Strona 1 z 2 Następna strona