【问题标题】:Trouble with playing videos in green_shoes gem在 green_shoes gem 中播放视频时遇到问题
【发布时间】:2014-09-30 10:01:30
【问题描述】:

这是我的问题。我已经从绿鞋样本中尝试过video example。但是因为这个我不能运行它:

require': cannot load such file -- win32api (LoadError)

所以这给了我一个消息,我必须安装 win32api gem。我试过用这个安装 win32api

gem install win32-api

但它给了我这个信息:

Building native extensions.  This could take a while...

错误:安装 win32-api 时出错: 错误:无法构建 gem 原生扩展。

/home/msdc/.rvm/rubies/ruby-2.1.2/bin/ruby extconf.rb

正在检查 strncpy_s()... 否 创建 Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling win32/api.c
win32/api.c:2:21: fatal error: windows.h: No such file or directory
compilation terminated.
make: *** [api.o] Error 1

make failed, exit code 2

Gem files will remain installed in /home/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8 for inspection.

结果记录到 /home/msdc/.rvm/gems/ruby-2.1.2/extensions/x86-linux/2.1.0/win32-api-1.4.8/gem_make.out

这是我的红宝石版本

ruby 2.1.2.p95

这是回溯的部分:

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1454 处的异常 `Errno::ENOENT' - 没有这样的文件或目录 @ unlink_internal - / home/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8/README

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/package/tar_reader.rb:71 处的异常Errno::EEXIST' at /home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:250 - File exists @ dir_s_mkdir - /home/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8 ExceptionNoMethodError' - 未定义的方法“寻求” #

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1334 处的异常 `Errno::ENOENT' - 没有这样的文件或目录 @ rb_file_s_lstat - / home/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8/test/test_win32_api.rb

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1334 处的异常 `Errno::ENOENT' - 没有这样的文件或目录 @ rb_file_s_lstat - / home/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8/test/test_win32_api.rb

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1454 处的异常 `Errno::ENOENT' - 没有这样的文件或目录 @ unlink_internal - / home/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8/test/test_win32_api.rb

# 的异常 NoMethodError' at /home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/package/tar_reader/entry.rb:126 - undefined methodreadpartial'

# 的异常 NoMethodError' at /home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/package/tar_reader.rb:71 - undefined methodseek'

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1334 处的异常 `Errno::ENOENT' - 没有这样的文件或目录 @ rb_file_s_lstat - / home/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8/test/test_win32_api_callback.rb

vm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1334 - 没有这样的文件或目录@ rb_file_s_lstat - /home/msdc/.rvm/gems/ruby-2.1.2 /gems/win32-api-1.4.8/test/test_win32_api_callback.rb

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1454 处的异常 `Errno::ENOENT' - 没有这样的文件或目录 @ unlink_internal - / home/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8/test/test_win32_api_callback.rb

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/package/tar_reader.rb:71 处的异常 Errno::EEXIST' at /home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:250 - File exists @ dir_s_mkdir - /home/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8/test ExceptionNoMethodError' - 未定义的方法“寻求” #

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1334 处的异常 `Errno::ENOENT' - 没有这样的文件或目录 @ rb_file_s_lstat - / home/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8/test/test_win32_api_function.rb

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1334 处的异常 `Errno::ENOENT' - 没有这样的文件或目录 @ rb_file_s_lstat - / home/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8/test/test_win32_api_function.rb

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1454 处的异常 `Errno::ENOENT' - 没有这样的文件或目录 @ unlink_internal - / home/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8/test/test_win32_api_function.rb

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/package/tar_reader.rb:71 处的异常 Errno::EEXIST' at /home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:250 - File exists @ dir_s_mkdir - /home/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8/test ExceptionNoMethodError' - 未定义的方法“寻求” #

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1334 处的异常 `Errno::ENOENT' - 没有这样的文件或目录 @ rb_file_s_lstat - /主页/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8/win32-api.gemspec

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1334 处的异常 `Errno::ENOENT' - 没有这样的文件或目录 @ rb_file_s_lstat - /主页/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8/win32-api.gemspec

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1454 处的异常 `Errno::ENOENT' - 没有这样的文件或目录 @ unlink_internal - /主页/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8/win32-api.gemspec

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/package/tar_reader.rb:71 处的异常 Errno::EEXIST' at /home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:250 - File exists @ dir_s_mkdir - /home/msdc/.rvm/gems/ruby-2.1.2/gems/win32-api-1.4.8 ExceptionNoMethodError' - 未定义方法“寻求” #

构建原生扩展。这可能需要一段时间... /home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1454 的异常 `Errno::ENOENT' - 没有这样的文件或目录 @ unlink_internal - /home/msdc /.rvm/gems/ruby-2.1.2/extensions/x86-linux/2.1.0/win32-api-1.4.8/gem.build_complete

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:250 处的异常 `Errno::EEXIST' - 文件存在 @ dir_s_mkdir - /home/msdc /.rvm/gems/ruby-2.1.2/extensions/x86-linux/2.1.0/win32-api-1.4.8

异常 Gem::InstallError' at /home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:89 - make failed, exit code 2 ExceptionGem::InstallError' 在 /home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:53 - 失败,退出代码 2 /home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:250 处的异常 `Errno::EEXIST' - 文件存在 @ dir_s_mkdir - /home/msdc/.rvm /gems/ruby-2.1.2/extensions/x86-linux/2.1.0/win32-api-1.4.8

/home/msdc/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:143 处的异常“Gem::Ext::BuildError” - 错误:构建 gem 原生扩展失败。

【问题讨论】:

  • gstreamer stackoverflow.com/questions/25158867/… 安装成功了吗?如果是这样,你做了什么?这个错误似乎与 gstreamer 密切相关。我也无法运行它(在 Fedora Linux 中,但我的错误是 LoadError: cannot load such file -- gst)所以我认为我无法为您提供更多帮助。
  • 这不是一个答案,但您可以尝试一下Why's Shoes:shoesrb.com 与 green_shoes 相比,Shoes::Video 依赖于不同的视频库:videolan 和 ffmpeg,它们往往得到很好的支持在 Linux 中,可能会给您带来更多好运。 shoesrb.com/manual/Video.html
  • 请发布使用 LoadError 打印的堆栈跟踪。这可能有助于某人追踪哪个 ruby​​ 文件正在尝试使用 win32_api 以及原因。
  • 我已经解决了我的 gstreamer 问题。 stackoverflow.com/questions/25158867/…
  • (我猜普通的 green_shoes 程序适合你,但我会问一下以防万一。)

标签: ruby gem gstreamer shoes linux-mint


【解决方案1】:

消息fatal error: windows.h: No such file or directory 表示您的 C 编译器找不到您的 Windows SDK,尤其是 windows.h 头文件。

如果你有那个头文件,你需要修复你的 C 编译器的配置。

如果没有,则需要获取Windows SDK。

这可能会有所帮助:

http://www.microsoft.com/en-us/download/details.aspx?id=8279

另见http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx

windows.h 位于 Debian 派生的 GNU/Linux 发行版中的多个位置。一个这样的地方是mingw-w64-i686-dev 包,但我不知道哪个包,如果有的话,你需要运行 green_shoes 视频。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 2010-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多