【问题标题】:Undefined reference to 'inflateInit2_'对“inflateInit2_”的未定义引用
【发布时间】:2014-01-02 19:27:45
【问题描述】:

我正在使用 Code Blocks IDE,我想为 SFML 安装 Tiled Map Editor。所以,我下载了源代码并将其导入到我的项目中。不幸的是,由于缺少 zlib 库,构建完成时出现错误。我下载了它并再次构建。这次我收到一条错误消息:

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

在网上找到了加入链接器命令-lz的建议,但是编译器拒绝抛出错误:找不到-lz。有人知道怎么解决吗?

【问题讨论】:

  • 您需要将zlib 放在您的编译器可以找到的地方。在 Linux 上,这意味着 /usr/lib/usr/local/lib(通常 make install 会处理此问题),而在 Windows 上没有标准方法,但您要么将编译器指向 DLL,要么将 DLL 放入编译器的 @987654328 @ 文件夹(上次我检查时,mingw 没有在 Windows 上搜索 PATH)。你的操作系统是什么?
  • @add 我解决了将 DLL 放入我的编译器的问题。谢谢!

标签: c++ windows gcc zlib undefined-reference


【解决方案1】:

使用选项-L<path> 告诉链接器在哪里可以找到libz.so.x.y.z

供您参考:http://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html

【讨论】:

    【解决方案2】:

    您可以像这样查看您的 zlib 的安装位置:

    /sbin/ldconfig -p| grep libz.so
    

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

    【讨论】:

    • 这将作为评论套件,但不回答问题。
    • 是的,看来
    猜你喜欢
    • 2015-05-25
    • 2011-03-27
    • 2022-01-22
    • 2016-04-04
    • 2015-11-03
    • 2011-08-11
    • 2019-07-22
    • 2015-07-20
    • 2019-06-22
    相关资源
    最近更新 更多