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

时间:2009-07-22 03:44:16

标签: ruby rubygems

如何使用MinGW在Windows XP上编译和构建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-curllib
Bulk updating Gem source index for: http://gems.rubyforge.org
Updating metadata for 73 gems from http://gems.rubyonrails.org
.........................................................................
complete
Bulk updating Gem source index for: http://gems.github.com
Building native extensions.  This could take a while...
ERROR:  Error installing taf2-curb:
        ERROR: Failed to build gem native extension.

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
checking for curl-config... no
checking for main() in true.lib... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --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:   Can't find libcurl or curl/curl.h (RuntimeError)

  Try passing --with-curl-dir or --with-curl-lib and --with-curl-include
  options to extconf.


Gem files will remain installed in C:/Ruby/lib/ruby/gems/1.8/gems/taf2-curb-0.4.8.0 for inspection.
Results logged to C:/Ruby/lib/ruby/gems/1.8/gems/taf2-curb-0.4.8.0/ext/gem_make.out

C:\Documents and Settings\Me>

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

帮助!

谢谢!

2 个答案:

答案 0 :(得分:1)

这是我的解决方案:

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

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

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

  4. 现在要小心谨慎 转到%RUBY%\ lib \ ruby​​ \ gems \ 1.9.1 \ gems \ taf2-curb-0.5.4.0 \ ext
    邪恶坐在2个文件中:curb_easy.h和curb_easy.c
    用你最喜欢的编辑器打开它们,找到并替换它们 找到邪恶的每个条目:接口,除了文字“接口...”,并小心地将其替换为
    interface_wtf_ms_i_love_bgates
    打开Makefile,将-llibcurl_imp添加到字符串

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

    现在我认为你已经准备好了,在ext中运行devkitvars.bat,然后运行make 你必须在gem的ext目录中获得curb_core.so。

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

    宝石列表现在将显示已安装taf2-curb

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

答案 1 :(得分:0)

你想检查你的mkmf.log 也许将curb-config添加到您的路径中? -r