链接到zlib.lib时为什么会出现错误LNK2001?

时间:2010-07-19 18:29:46

标签: c++ visual-studio compiler-construction gzip

我正在开发一个已包含gzip库的项目,如下所示:

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()函数取出。头文件仍然有它们,这是误导。

4 个答案:

答案 0 :(得分:5)

我从here中取出了一个,以便在Windows中构建zlib。如果你做了同样的事情,你可能忘记在包含zlib.h之前#define ZLIB_WINAPI

答案 1 :(得分:2)

您还需要将zlib.lib添加到项目的库中: 项目属性 - >链接器 - >输入 - >附加依赖项。

答案 2 :(得分:2)

当构建停止时,按住Ctrl键单击URL以查看更详细的日志形式,并检查传递给链接器的实际命令行。这至少会告诉你是否正在尊重链接zlib的选项。您可能会获得其他有用的诊断输出。一种可能是架构不同(例如你正在构建x64但lib是x86)

答案 3 :(得分:0)

原来我使用的静态库有gz()函数。头文件仍然有它们,这是误导。