如何解决Windows上的Rails找不到的'libcurl'

JSt*_*ger 19 windows curl ruby-on-rails libcurl rubymine

这让我很头疼.我正在继续一个从Linux开始的Rails项目,当我在Ruby Mine上运行Puma时我会继续这样做:

Error:[rake --tasks] DL is deprecated, please use Fiddle
rake aborted!
LoadError: Could not open library 'libcurl': The specified module could not be found.
Could not open library 'libcurl.dll': The specified module could not be found.
Could not open library 'libcurl.so.4': The specified module could not be found.
Could not open library 'libcurl.so.4.dll': The specified module could not be found.
C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/ffi-1.9.14-x86-mingw32/lib/ffi/library.rb:147:in `block in ffi_lib'
[...]
Run Code Online (Sandbox Code Playgroud)

现在,我尝试了什么?

  • 我按照这个步骤在Windows上成功安装了Puma
  • 我下载curl-7.50.1-win32-mingw并把它放在"C:/ curl"
  • 我将C:/ curl/bin和C:/ curl/include添加到PATH中
  • 我成功安装了curb gem gem install curb --platform=ruby -- --with-curl-lib=C:/curl/bin --with-curl-include=C:/curl/include
  • 我将.dll文件放在Ruby bin文件夹中,将证书安装在curl/bin中,甚至运行curl.exe以防万一.

我重新启动机器,但我一直看到同样的错误.

我不知道该怎么办.如何在Windows上成功安装libcurl以与Rails一起使用

Ric*_*eck 37

对我有用的答案(W10/Ruby2.6.0)是:

  1. 从以下 URL 下载 cURL:https : //curl.haxx.se/windows/(我选择 64 位,因为这是我使用的系统)
  2. 进入存档并浏览到 /bin
  3. 定位libcurl_x64.dll(可能只是libcurl.dll
  4. 解压到本地驱动器
  5. libcurl.dll如果它有_x64后缀,则将其重命名为
  6. 将文件剪切并粘贴到/binRuby 安装目录中


TT-*_*T-- 7

我在Windows 7 x64上遇到了同样的问题并在此处回答了这个问题.(与你类似,我尝试了很多我认为应该工作但却没有的东西.)

什么工作是:

(以下是我试过的不起作用的东西:)

  • 穿上C:\Ruby24-x64\bin:PATH从当前的Curl下载向导中获取
  • 重命名上面cygcurl-4.dllcygcurl-4.dll,并把它放在libcurl.dll
  • 安装PATHmsys2
  • libcurl-devel 7.57.0-1(从msys-curl-4.dll发现时msys2)重命名为msys64\usr\bin

我没有尝试从最新的源代码构建curl/libcurl,因为我已经拥有最新版本了libcurl.dll:

msys/libcurl 7.57.0-1 (libraries) [installed]
Multi-protocol file transfer library (runtime)

msys/libcurl-devel 7.57.0-1 (development) [installed]
Libcurl headers and libraries
Run Code Online (Sandbox Code Playgroud)

在这些其他问题中有关此问题的更多详情


ZX1*_*12R 5

我遇到了同样的问题并尝试了OP列出的相同步骤.打破我的头,诅咒窗口存在一段时间,几乎说服客户端转移到nix服务器,我想到了我从https://curl.haxx.se/下载的libcurl.dll (如所有相关建议)帖子)是腐败的.

下载了这里提供的那个http://www.dlldownloader.com/libcurl-dll/和中提琴ffi能够加载这一个.

希望这有助于其他任何人面对这个问题

  • 这对我有用。只需将下载的 dll 文件复制到 RubyX 文件夹 (2认同)