Zip 아카이브에서 파일을 추출하려면 C++의 내 프로그램에서 libzip을 사용하고 싶습니다. 그래서 첫째로, 나는 그것에 파일의 수를 얻고, 그들의 이름을 얻고 그것을 읽습니다. 파일 수를 얻으려면 'zip_get_num_entries'를 사용합니다.컴파일러가 Windows에서 zip_get_num_entries에 대한 참조를 찾지 못했습니다.
zip_uint64_t zip_get_num_entries(struct zip *, int)
그리고 그 방법은 내가이 기능을 사용합니다 : 프로토 타입은이 코드를 썼을 때
int nbrEntries(0);
zip *archive = zip_open("myZip.zip", 0, 0);
nbrEntries = zip_get_num_entries(archive, 0);
은, 코드 :: 블록이 나에게 zip_get_num_entries 제안을, 그래서 헤더의 문제가 없습니다.
undefined reference to `_imp__zip_get_num_entries'
그래서 나는 그것의 사용되지 않는 동등한, zip_get_num_files을 시도하고 일 : 내가 컴파일 할 때, 컴파일러 (는 MinGW)는 나에게 말했다. 나는 CMake로 만든 프로젝트 libzip.dll.a에 포함시켰다. libzip.dll과 libzip.dll.a라는 두 개의 파일이 있습니다.
저는 라이브러리 문제 (MacOS에서는이 문제가 없었 음을 확인했습니다)를 해결할 방법을 모르겠습니다. 고맙습니다!
편집 : 나는 그들의 웹 사이트를 검색하여 zip_get_num_files의 구현이 웹 사이트에서 사용할 수있는 라이브러리를 출시했을 때 새로운 것을 읽었습니다. 그래서 Mercurial repo에서 검색 한 결과 2 일 전에 릴리스 된 버전을 발견했습니다 (거의 1 년이되는 웹 사이트의 출시보다 조금 더 새 버전). CMake로 만들었고 효과가있었습니다!
내 프로젝트 빌드 옵션의 "컴파일러 설정"> "기타 옵션"메뉴에서 -lzip을 추가했지만 항상 같은 메시지가 있습니다 : -/내가 뭘 잘못 구성 했습니까? – Tiwenty
오, 나는 내 프로그램을 컴파일하는 데 성공했다 !! 나는 그들의 Mercurial repo에서 최신 버전을 다운로드했고 효과가있었습니다! http://hg.nih.at/libzip/rev/3bf116d0b3e9 – Tiwenty