我正在开发一个已包含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()函数取出。头文件仍然有它们,这是误导。
答案 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()函数。头文件仍然有它们,这是误导。