2013-04-20 1 views
0

poco C++ 라이브러리로 작업하는 동안 zlib 함수를 사용하려고합니다. poco가 링크를하기 때문에 zlib 라이브러리에 직접 링크가 작동하지 않으며 연결하는 동안 몇 개의 복제본이 생깁니다. 그래서 내 라이브러리 목록에서 zlib.lib을 제거하고 poco 버전 만 사용했습니다.Poco/zlib : 오류 LNK2019 해결되지 않은 외부 "_gzopen"

zlib.h는 POCO의 일부입니다 완벽하게 작품을 컴파일,하지만 지금 연결하는 것은 그래서 duplicateunresolved 사이를 전환 할 수 있습니다 다음과 같은 오류

error LNK2019 unresolved external "_gzopen" 

결과 때문입니다. 누가 나를 도울 수 있습니까?

답변

1

Windows에서 ZLIB_DLL을 정의하면 고유 zlib 인터페이스를 강제로 내 보내야합니다. 선택적으로 Poco InflatingStreamDeflatingStream 랩 zlib 기능. 경고 단어 : 이것은 표준 스트림 파생물이며 성능 저하가있을 수 있습니다.

+0

언제 ZLIB_DLL을 사용해야합니까? Poco를 컴파일하거나 프로젝트를 컴파일하는 동안? 그리고 ... zlib.dll을 갖고 싶지 않습니다. 제 정적 Poco 라이브러리에서 zlib 함수를 노출 시키길 원합니다 ... – heinob

+0

OK, 조금 더 깊이 들여다 보았습니다. [gzlib.c] (https : // github.com/pocoproject/poco/blob/develop/Foundation/src/gzlib.c) (여기서 [gzopen] (https://github.com/pocoproject/poco/blob/develop/Foundation/src/gzlib.c#) L262) definition is)는 POCO와 함께 배포되었지만 실제로는 Foundation 프로젝트에 포함되지 않았기 때문에 링크 오류가 표시됩니다. POCO VS 프로젝트가 변경되지 않도록하려면 POCO 배포본의 gzlib.c를 응용 프로그램에 포함시키는 것이 가장 좋습니다. 나는 gzlib.c를 포함하고 Foundation 샘플 애플리케이션에서 gzopen을 호출하려고 시도했지만 잘 링크되었다. – Alex