【问题标题】:How do I compile and build the taf2-curb Ruby gem on Windows XP with MinGW?如何在 Windows XP 上使用 MinGW 编译和构建 taf2-curb Ruby gem?
【发布时间】:2010-11-12 20:58:24
【问题描述】:

如何在 Windows XP 上使用 MinGW 编译和构建 taf2-curb Ruby gem?

我试过这个,但我有点钓鱼,没有成功。

C:\Documents and Settings\Me>gem install taf2-curb -- --with-curl-include=C:/curl-7.19.5-devel-mingw32/include
--with-curl-dir=C:/curl-7.19.5 --with-curl-lib=C:/curl-7.19.5-devel-mingw32/lib --prefix=C:/MinGW --with-卷曲库
批量更新 Gem 源索引:http://gems.rubyforge.org
从 http://gems.rubyonrails.org 更新 73 颗宝石的元数据
..................................................... .....................
完全的
批量更新 Gem 源索引:http://gems.github.com
构建原生扩展。这可能需要一段时间...
错误:安装 taf2-curb 时出错:
        错误:无法构建 gem 原生扩展。

C:/Ruby/bin/ruby.exe extconf.rb install taf2-curb --with-curl-include=C:/curl-7.19.5-devel-mingw32/include --with-cur
l-dir=C:/curl-7.19.5 --with-curl-lib=C:/curl-7.19.5-devel-mingw32/lib --prefix=C:/MinGW --with-curllib
检查 curl-config... 否
检查 true.lib 中的 main() ...否
*** extconf.rb 失败 ***
由于某种原因无法创建 Makefile,可能缺少
必要的库和/或头文件。查看 mkmf.log 文件了解更多信息
细节。您可能需要配置选项。

提供的配置选项:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --srcdir=。
        --curdir
        --ruby=C:/Ruby/bin/ruby
        --with-curl-dir
        --with-curl-include=${curl-dir}/include
        --with-curl-lib=${curl-dir}/lib
        --with-curllib
extconf.rb:9: 找不到 libcurl 或 curl/curl.h (RuntimeError)

  尝试传递 --with-curl-dir 或 --with-curl-lib 和 --with-curl-include
  extconf 的选项。


Gem 文件将继续安装在 C:/Ruby/lib/ruby/gems/1.8/gems/taf2-curb-0.4.8.0 以供检查。
结果记录到 C:/Ruby/lib/ruby/gems/1.8/gems/taf2-curb-0.4.8.0/ext/gem_make.out

C:\Documents and Settings\Me>

我已经从这个 url 安装了 curl-7.19.5 和 curl-7.19.5-devel-mingw: http://curl.haxx.se/download.html

救命!

谢谢!

【问题讨论】:

    标签: ruby rubygems


    【解决方案1】:

    您需要检查您的 mkmf.log 也许将遏制配置添加到您的路径中? -r

    【讨论】:

      【解决方案2】:

      这是我的解决方案:

      1. 首先你需要这个人:
        https://github.com/oneclick/rubyinstaller/wiki/Development-Kit
        希望您可以阅读并使用 ruby​​installer 重新安装您的 ruby​​。

      2. 为 win32 下载二进制 libcurl。
        将 libcurl_imp.lib 从 %LIBCURL% 复制到您的 %RUBY%\lib (hack,没有时间弄清楚操作方法)
        将 %LIBCURL%\lib\Release\curllib_static.lib 复制并重命名为 %RUBY%\lib\curl.lib(相同的 hack)

      3. 骶部
        gem install taf2-curb --platform=ruby -- --with-curl-dir=%LIBCURL%
        你犯了错误,因为邪恶不要睡觉,但别担心,圣战就在这里。

      4. 现在要格外小心
        转到 %RUBY%\lib\ruby\gems\1.9.1\gems\taf2-curb-0.5.4.0\ext
        evil 位于 2 个文件中:curb_easy.h 和 cream_easy.c
        在您喜欢的编辑器中打开它们,并具有查找和替换功能。
        找到 evil: interface 的每个条目,除了literall "interface..." 并小心地将其替换为
        interface_wtf_ms_i_love_bgates
        打开 Makefile,将 -llibcurl_imp 添加到字符串

      LIBS = $(LIBRUBYARG_SHARED) -lcurl -lshell32 -lws2_32 -llibcurl_imp

      现在我想你已经准备好了,在 ext 中运行 devkitvars.bat,然后运行 ​​make。
      您必须在 gem 的 ext 目录中获取 crawl_core.so。

      在此之后需要手动更改 gemspec
      c:...\lib\ruby\gems\1.9.1\gems\taf2-curb-0.5.4.0>gem 规范 ....\cache/taf2-curb-0.5.4.0.gem --ruby > .. ..\specifications/taf2-curb-0.5.4.0.gemspec

      gem 列表现在将显示已安装的 taf2-curb

      这是所有这些东西的证明:
      常量 im_mtf_spamma_yes_i_am 你可以在 github feedtosis 页面中找到它的价值
      C:\test3>rails 控制台
      加载开发环境(Rails 3.0.3)
      irb(main):001:0> client = Feedtosis::Client.new('im_mtf_spamma_yes_i_am')
      => #{}, :namespace=>"feedtosi
      s", :retained_digest_size=>10}, @backend={}>
      irb(main):002:0> 结果 = client.fetch
      => #
      irb(main):004:0> result.perform
      => 真的
      irb(main):005:0> result.body_str
      => "\r\n s2full.xsl\"?>.....

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-15
        • 2010-09-11
        • 1970-01-01
        • 2011-07-12
        • 2021-12-21
        • 2020-11-22
        • 2010-09-16
        • 2017-03-04
        相关资源
        最近更新 更多