即使我使用libcurl,Ruby gem curb也不会安装在Windows 7上

时间:2013-05-30 15:07:37

标签: ruby gem libcurl vagrant curb

我正在尝试使用libcurl在Windows 7上安装curb gem,但它会返回错误。这是为了最终的目的是在带有vagrant的vm上运行ruby应用程序,在此处解释github catarse install。但它返回错误说:

Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing curb:
        ERROR: Failed to build gem native extension.

    C:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb
C:/RailsInstaller/Ruby1.9.3/bin/ruby.exe: invalid option -V  (-h will show valid
 options) (RuntimeError)

这些是我使用过的版本:

C:\>ruby -v
ruby 1.9.3p392 (2013-02-22) [i386-mingw32]

C:\>gem -v
2.0.3

C:\>vagrant -v
Vagrant version 1.2.2

所以我尝试使用http://beginrescue.blogspot.com.au/2010/07/installing-curb-with-ruby-191-in.html但是有一个错误,make_gem.out文件有很多这些(作为一个例子,我认为没有必要发布整个文件):

C:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb --with-curl-lib=C:\curl-7.30.0-devel-mingw32\bin --with-curl-include=C:\curl-7.30.0-devel-mingw32\include
checking for curl-config... no
checking for main() in -lcurl... yes
checking for curl/curl.h... yes

C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\curb-0.8.4\ext/curb_postfield.c:454: undefined reference to `_imp__curl_free'
curb_postfield.o: In function `append_to_form':
C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\curb-0.8.4\ext/curb_postfield.c:76: undefined reference to `_imp__curl_formadd'
C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\curb-0.8.4\ext/curb_postfield.c:115: undefined reference to `_imp__curl_formadd'
C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\curb-0.8.4\ext/curb_postfield.c:120: undefined reference to `_imp__curl_formadd'
collect2: ld returned 1 exit status
make: *** [curb_core.so] Error 1

3 个答案:

答案 0 :(得分:1)

我在尝试安装最新版本(在本文发布时)libcurl 7.32.0时遇到了同样多的链接器错误。不幸的是,以前曾经为我工作过的旧版本(例如7.19.4)不再包含带库和头文件的x86-mingw软件包。

Here您可以找到包含libcurl 7.24.0的软件包列表,它们可以帮助您构建扩展。第一篇文章还解释了如何提取它们并设置环境。然后我可以使用gem install curb -- --with-opt-dir=c:/path/to/libcurl安装curb 0.8.5。

答案 1 :(得分:1)

我必须使用curl curl-7.36.0.zip进行安装,然后必须编译DevKitDevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe Ruby200在Windows 7 32bit上。 curl-7.36.0-win32-fix1.msi的{​​{1}}无效,curl-7.36.0-win32-fix1.zip也不行。

这是一个令人痛苦的经历,谷歌搜索问题以获得没有连接到封闭问题的个人给出的答案等。

答案 2 :(得分:0)

我的堆栈:Windows 7,git bash 1.8.4.msysgit,ruby 1.9.3p484,rubygems 1.8.28

我让它做了以下工作(主要在http://beginrescue.blogspot.com.au/2010/07/installing-curb-with-ruby-191-in.html提到)

  1. 安装DevKit
  2. 将curl-7.34.0-devel-mingw32.zip下载并解压缩到C:驱动器,让我们将此位置称为CURL7_HOME。
  3. 将curl bin添加到我的PATH顶部(我第一次错过了)
  4. 安装路缘:gem install curb -- --with-curl-lib=$CURL7_HOME/bin --with-curl-include=$CURL7_HOME/include
  5. 注意:--with-curl-lib=$CURL7_HOME/bin不是拼写错误。将其设置为bin目录使其工作。我已经尝试了--with-curl-dir=$CURL7_HOME--with-curl-lib=$CURL7_HOME/lib,但那些人都没有工作。