对 'inflateInit2_' 的未定义引用

11

我正在使用Code Blocks IDE并希望为SFML安装Tiled Map Editor。因此,我下载了源代码并将其导入到我的项目中。不幸的是,由于缺少zlib库,构建失败了。我下载了它并重新构建了一遍。这次我收到的错误信息是:

undefined reference to `inflateInit2_'|
undefined reference to `inflateEnd'|
undefined reference to `inflateEnd'|

我在互联网上找到了加入链接器命令-lz的建议,但编译器拒绝并抛出错误:无法找到-lz。有人知道如何解决吗?


3
您需要将 zlib 放置在编译器可以找到的位置。在Linux上,这意味着放在 /usr/lib/usr/local/lib (通常由 make install 处理),而在Windows上没有标准方法,但您可以将 DLL 指向编译器,或将 DLL 放在编译器的 lib 文件夹中(mingw 在Windows上最后一次我检查时无法搜索 PATH)。请问您使用的操作系统是什么? - Thomas
@add 我解决了问题,将DLL放入我的编译器中。谢谢! - Jake
相关:https://dev59.com/13I-5IYBdhLWcg3w3crS - Ciro Santilli OurBigBook.com
2个回答

7

4
您可以通过以下方式查看安装的zlib位置:
/sbin/ldconfig -p| grep libz.so

如果已安装,则应找到一个或多个条目,否则将返回空行。

3
这可能适合作为评论,但并没有回答问题。 - alk
是的,看起来是这样的。 - serup

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接