我有一个 zlib 链接器错误。花了几个小时试图解决这个问题,但到目前为止还没有。Zlib 是使用 vs2010 构建的,win32 版本。我的项目使用的是相同的。
错误提取:
error LNK2019: unresolved external symbol _deflateEnd@4 referenced in function
error LNK2019: unresolved external symbol _deflate@8 referenced in function
error LNK2019: unresolved external symbol _deflateInit_@16 referenced in function
在文件中包含 zlib.h,如下所示:
#ifdef WIN32
# define ZLIB_WINAPI
#endif
#include "zlib.h"
项目设置:
Linker->General->Additional Library Dependencies : C:\somepath\zlib
链接器->输入- >附加依赖项:zlibstatic.lib
链接器详细输出(不完整,仅用于 zlib):
Searching C:\somepath\zlib\zlibstatic.lib:
Searching C:\somepath\zlib\zlibstatic.lib:
两次直接命中但它没有做任何事情..
我看到了这个问题,但我认为我没有这个问题,因为:
- 我没有使用 contrib 解决方案,我用cmake -G "Visual Studio 10"生成了一个
- 我之前定义了 ZLIB_WINAPI 作为对最佳答案的评论建议。
它实际上是一个开源项目,所以如果有人可以尝试重现该问题:
- 克隆https://github.com/d1zzy/pvpgn.git
- 将 zlib 库和包含文件添加到 pvpgn/pvpgn/zlib(或其他任何地方,只需使用您的自定义 zlib 路径编辑 cmake/Modules/FindZLIB.cmake)
- 运行 cmake -G "Visual Studio 10",打开解决方案并尝试构建项目 "bnetd"