2010-07-19 133 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()函数被取出。头文件仍然有他们误导。

相关问题