3

我正在尝试使用 libcurl 在 Windows 7 上安装遏制 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
4

3 回答 3

1

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

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

于 2013-10-06T04:46:50.843 回答
1

在必须在 Windows 7 32 位上使用 Ruby200编译 , 之后,我终于通过使用 , 的源代码安装了路边with没有用,也没有旧的.curlcurl-7.36.0.zipDevKitDevKit-mingw64-32-4.7.2-20130224-1151-sfx.execurl-7.36.0-win32-fix1.msicurl-7.36.0-win32-fix1.zipcurl-7.34.0-devel-mingw32.zip

这是一次令人痛苦的经历,在谷歌上搜索问题以获得与已解决问题无关的个人给出的答案等。

于 2014-05-14T20:41:32.813 回答
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

注意:--with-curl-lib=$CURL7_HOME/bin不是错字。将其设置为 bin 目录使其工作。我试过了--with-curl-dir=$CURL7_HOME--with-curl-lib=$CURL7_HOME/lib但那些不起作用。

于 2014-07-16T14:32:47.927 回答