2010-07-19 70 views
0

我的工作已包含gzip庫如下項目:鏈接到zlib.lib時,爲什麼會收到錯誤LNK2001?

zlib\zlib.h 
zlib\zlib.lib 
zlib\zconf.h 

我想從這個.LIB使用gzip的功能,而且正在以下errors

Compress.cpp 
Linking... 
Compress.obj : error LNK2001: unresolved external symbol _gzclose 
Compress.obj : error LNK2001: unresolved external symbol _gzerror 
Compress.obj : error LNK2001: unresolved external symbol _gzwrite 
Compress.obj : error LNK2001: unresolved external symbol _gzopen 
.\Debug/files.exe : fatal error LNK1120: 4 unresolved externals 
Error executing link.exe. 

鏈接設置包括:
對象/庫模塊:zlib.lib
項目選項:
zlib.lib

在使用GZX()函數的文件,它

#include "zlib/zlib.h" 

需要什麼其他方面下工夫使用這些功能呢?

謝謝。

編輯:使用Visual Studio 6.0 C++

EDIT2:原來我是用有GZ()取出它們的功能的靜態庫。頭文件仍然有他們誤導。

回答

5

我抓住了一個關閉here以使zlib在windows中生成。如果你這樣做了,你可能已經忘了在包含zlib.h之前#define ZLIB_WINAPI

+0

謝謝,但不知道這是他們從哪裏得到的。 #define ZLIB_WINAPI沒有區別。 – 2010-07-19 18:44:45

+0

hmmm ...這個相同的項目在'old'目錄中有示例dsp/dsw文件...您可以使用它作爲參考... – paquetp 2010-07-19 19:02:18

2

您還需要將zlib.lib添加到項目的庫中: 項目屬性 - >鏈接器 - >輸入 - >其他依賴項。

+0

在VS 6.0中,它存在於其他庫路徑下:。\ zlib – 2010-07-19 18:45:09

2

當構建停止時,按住Ctrl單擊URL以查看更詳細的日誌形式並檢查傳遞給鏈接器的實際命令行。這至少會告訴你,鏈接到zlib的選項是否受到尊重。您可能會得到其他有用的診斷輸出。一種可能性可能是架構不同(例如,您正在構建x64,但lib是x86)

+0

hmmmm ...在VS 6.0中沒有鏈接,我會查找日誌文件,它看起來好像沒有遵守鏈接。 – 2010-07-19 18:48:43

0

原來我使用的靜態庫有gz()函數被取出。頭文件仍然有他們誤導。

相關問題