【问题标题】:Installing libxml-ruby gem fails because zlib is missing由于缺少 zlib,安装 libxml-ruby gem 失败
【发布时间】:2011-03-18 14:40:07
【问题描述】:

尝试在我的 Windows 计算机上安装 ruby​​ gem libxml-ruby 时,我收到以下错误消息

D:/.../bin/ruby.exe extconf.rb
checking for socket() in -lsocket... no
checking for gethostbyname() in -lnsl... no
checking for atan() in -lm... yes
checking for inflate() in -lz... no
checking for inflate() in -lzlib... no
checking for inflate() in -lzlib1... no
 extconf failure: need zlib

谁能告诉我如何安装这个 gem?我搜索了答案,也找到了 zlib 库,但不知道在哪里使用它们。

我正在使用 ruby​​ 版本 1.8.7 和 devkit 4.5.1

我的解决方案

  1. 将 ruby​​/bin 文件夹中的 zlib1.dll 复制到 ruby​​/lib 文件夹中
  2. ftp://ftp.zlatkovic.com/libxml/下载了iconv.dll,也放到了ruby/lib文件夹中
  3. ftp://ftp.zlatkovic.com/libxml/ 下载libxml2 并将libxml-folder 从包含文件夹中的devkit 包含目录中放入mingw (在我的情况下……像devkit/mingw/mingw32/include)

【问题讨论】:

  • 除非你真的需要 libxml,否则我会用 Nokogiri 代替它,它是目前最好的 XML gem。
  • 是的,我需要它来运行第三方代码
  • 此类问题的一个常见原因是您拥有的 zlib 没有使用与您的 ruby​​ 相同的架构...如果 ruby​​ 是 64 位,您将需要一个 64 位的 zlib,如果是 x32,那么您将需要两个 x32。另外,请确保您的 zlib.ddl 在您的路径中。
  • 在哪个路径?在哪里可以找到 64 位的 zlib?在我看来只有一个版本可以在zlib.net 找到

标签: ruby gem zlib libxml2 devkit


【解决方案1】:

我在this page 上发现development headers for windows98/NT/2000/XP/2003 链接自zlib.net

如果你想在你的程序中使用 zlib,你需要它。 zlib 官方没有“程序员手册”,但是快速阅读 zlib.h 会让你的想法更清晰。

【讨论】:

  • 我认为这是一个相对不错的答案,但我刚刚在一些 ruby​​ google 小组的帮助下发现了如何安装它 =)。有时间我会发布解决方案。
  • @Xelluloid - 你有时间吗:-) 我真的很想知道是否有更简单的解决方案。
【解决方案2】:

检查您是否安装了 zlib 头文件。在许多 Linux 发行版中,这是一个名为“zlib-devel”的包。

编辑:我刚刚意识到您使用的是 Windows 环境。我对 Windows 没有任何开发经验,但您需要在包含路径的某处使用 zlib.h。我的猜测是你只有 .dll 文件,它允许已经编译的程序使用 zlib,但不允许你编译任何引用它的源代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多