5

TyphoeusgemをWindows7マシンで動作させることができません。

基本的に、「C:/Ruby192/lib/ruby/gems/1.9.1/gems/typhoeus-0.2.4/ext/typhoeus/」に「native.so」ファイルは見つかりません。これを修正するにはどうすればよいですか?

 C:/Ruby192/lib/ruby/gems/1.9.1/gems/typhoeus-0.2.4/lib/typhoeus.rb:10:in
 `require': 126: The specified module
 could not be found.   -
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/typhoeus-0.2.4/ext/typhoeus/native.so
 (LoadError)    from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/typhoeus-0.2.4/lib/typhoeus.rb:10:in
 `<top (required)>'     from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/runtime.rb:68:in
 `require'  from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/runtime.rb:68:in
 `block (2 levels) in require'  from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/runtime.rb:66:in
 `each'     from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/runtime.rb:66:in
 `block in require'     from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/runtime.rb:55:in
 `each'     from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/runtime.rb:55:in
 `require'  from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler.rb:120:in`require'
4

3 に答える 3

3

私(Win7 x64)で機能したのは、 http Download libcurl.dll (all versions) only//www.paehl.com/open_source/? CURL_7.35.0というリンクから.dllをダウンロードすることでした。

解凍した後、NoSSL/SSLディレクトリから.dllファイルを取得しました(どちらも機能しているようですSSLが、念のために使用しました)。ファイルをRubyの/binディレクトリにコピーすると、Typhoeusが機能しました。

注:Rubyは32ビットであるため、x64バージョンの.dllを使用することはできません。Typhoeusはx64ファイルに反応しませんでした。

うまくいけば、これは誰かを助けるでしょう。

于 2014-03-06T21:55:47.703 に答える
1

問題は、typhoeusがそのnative.so拡張機能を正常にコンパイルするために、開発ライブラリとしてcurlを必要とするようです。

まず、ダウンロードページからRubyInstallerDevKitをインストールする必要があります。次に、MinGWのcurlおよび開発ヘッダーとライブラリを取得する必要があります。これらの手順はメーリングリストにあります。

http://groups.google.com/group/rubyinstaller/browse_thread/thread/c8a4bdb6663cbf7c

記録として、その同じ投稿は、ユーザーがWindowsでgemを動作させようとして失敗し、curbへの切り替えを終了したことを示しています。

PS:*。soは共有オブジェクトのUNIX / POSIX規則であると言う人もいるかもしれませんが、Pythonが拡張機能に使用するように、RubyがWindowsC-Extensionsに使用することを決定し*.pydた拡張機能です。

于 2011-06-14T19:42:08.973 に答える
0

そのgemが探している場合はnative.so、Windowsでは機能しない可能性があります。*.so* NIXは*.dll、Windowsの「共有オブジェクト」または「ダイナミックリンクライブラリ」ファイルに相当します。したがって、それは本当に必要なnative.dll場合もあれば、プラットフォームに依存するコードに基づいて構築されたgemである場合もあります。彼らのドキュメントを見てください、これは暗闇の中でのショットです。

繰り返しになりますが、native.so(LoadError)で何かが発生したため、実行が開始された可能性があります、idk

于 2011-06-14T16:25:48.863 に答える