2013-04-20 180 views
0

我想在使用poco C++庫時使用zlib函數。直接鏈接到zlib庫不起作用,因爲poco也鏈接到它,並且在鏈接時我會得到幾個重複。所以我從我的庫列表中刪除了zlib.lib並僅使用了poco版本。Poco/zlib:錯誤LNK2019無法解析的外部「_gzopen」

因爲zlib.h是POCO的一部分,完全編譯的作品,但現在鏈接在下面的錯誤

error LNK2019 unresolved external "_gzopen" 

結果讓我可以duplicateunresolved之間切換。誰能幫助我?

回答

1

在windows上,定義ZLIB_DLL應強制導出本地zlib接口。可選地,Poco InflatingStreamDeflatingStream包裝zlib功能。一個警告的話:這些是標準流衍生物,可能會有性能損失。

+0

什麼時候應該使用ZLIB_DLL?編譯Poco或編譯我的項目?並且...我不想有一個zlib.dll,我希望我的靜態Poco庫顯示zlib函數... – heinob 2013-04-22 07:00:14

+0

好吧,我深入瞭解了一下 - [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)的定義是)與POCO一起發佈,但實際上並未包含在Foundation項目中,這就是爲什麼你會看到鏈接錯誤。爲了避免對POCO VS項目進行更改,最好將POCO發行版中的gzlib.c包含到您的應用程序中並解決;我嘗試了包括gzlib.c並從Foundation示例應用程序中調用gzopen,並且鏈接正常。 – Alex 2013-04-22 19:17:43

相關問題