Как мне скомпилировать и собрать гем Ruby taf2-curb в Windows XP с MinGW? - PullRequest
2 голосов
/ 22 июля 2009

Как мне скомпилировать и собрать гем Ruby для taf2-curb в Windows XP с MinGW?

Я пробовал это, но я вроде как ловлю, но безуспешно.

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 из этого URL: http://curl.haxx.se/download.html

Помощь!

И спасибо!

Ответы [ 2 ]

1 голос
/ 01 января 2011

Вот мое решение:

  1. в первую очередь вам нужен этот парень:
    https://github.com/oneclick/rubyinstaller/wiki/Development-Kit
    надеюсь, что вы можете прочитать и установить-переустановить свой ruby ​​с помощью rubyinstaller.

  2. скачать двоичный libcurl для win32.
    скопировать 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%
    Вы получили много ошибок, потому что зло не спит, но не волнуйтесь, Джихад здесь.

  4. Теперь будьте крайне осторожны
    goto% 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 в строку

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

теперь я думаю, что вы готовы, запустите devkitvars.bat в ext, затем запустите make.
Вы должны получить curb_core.so в ext dir of gem.

после этого нужно вручную изменить 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> .. .. \ Specification / taf2-curb-0.5.4.0.gemspec

список драгоценных камней теперь покажет вам установленный taf2-curb

вот доказательство всего этого:
constaNT im_mtf_spamma_yes_i_am вы можете найти его значение на странице рассылки github
C: \ test3> Рельсы консольные
Загрузка среды разработки (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> результат = client.fetch
=> #
irb (основной): 004: 0> result.perform
=> правда
irb (основной): 005: 0> result.body_str
=> "\ r \ n s2full.xsl \ "?> .....

0 голосов
/ 06 октября 2009

вы захотите проверить свой mkmf.log Возможно добавить curb-config к вашему пути? -r

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...