【发布时间】: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