如何安装libv8 gem?我无法安装libv8 gem。当我尝试时,我得到了下面的错误。
$ gem install libv8
Building native extensions. This could take a while...
ERROR: Error installing libv8:
ERROR: Failed to build gem native extension.
/usr/bin/ruby.exe extconf.rb
creating Makefile
Using compiler: /usr/bin/g++
which: no gmake in (/usr/local/bin:/usr/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/WINDOWS/system32/WindowsPowerShell/v1.0:/cygdrive/c/Program Files/Microsoft SQL Server/100/Tools/Binn/VSShell/Common7/IDE:/cygdrive/c/Program Files/Microsoft SQL Server/100/Tools/Binn:/cygdrive/c/Program Files/Microsoft SQL Server/100/DTS/Binn:/cygdrive/c/Program Files/Heroku/bin:/cygdrive/c/Program Files/ruby-1.9.2/bin:/cygdrive/c/Program Files/git/bin:/cygdrive/c/Program Files/git/cmd:/cygdrive/c/Program Files/DTN/IQFeed:/cygdrive/c/Program Files/OpenVPN/bin:/cygdrive/c/Program Files/Java/apache-ant-1.8.3/bin:/usr/lib/lapack:/cygdrive/c/Program Files/Notepad++:.:/cygdrive/c/Program Files/Java/android-sdk/platform-tools/:/cygdrive/c/Program Files/Java/android-sdk/tools/:/cygdrive/c/Program Files/Java/jdk1.7.0_03/bin)
In file included from ../src/conversions-inl.h:42:0,
from ../src/conversions.cc:32:
../src/platform.h:77:12: error: new declaration ‘int random()’
/usr/include/cygwin/stdlib.h:29:6: error: ambiguates old declaration ‘long int random()’
make[1]: *** [/usr/lib/ruby/gems/1.9.1/gems/libv8-3.11.8.13/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/conversions.o] Error 1我试着用
$ gem install libv8 --pre
Fetching: libv8-3.5.10.beta1.gem (100%)
Building native extensions. This could take a while...
Successfully installed libv8-3.5.10.beta1
1 gem installed但是bundle install仍然不能运行。它仍然尝试安装版本3.11.8.13。
Installing libv8 (3.11.8.13) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.libv8 gem不在我的Gemfile中。我不知道如何找出是什么在试图使用它,但在搜索时,我看到rubyracer使用了libv8,而我确实有
group :assets do
gem 'therubyracer', :platform => :ruby我甚至尝试编辑/usr/lib/ruby/gems/1.9.1/gems/libv8-3.11.8.13/src/platform.h文件并注释掉第77行:
//int random();
但是当我运行gem install libv8时,它覆盖了我的更改,仍然给出一个错误。我在gem install libv8 --help中发现了一个技巧,所以我再次编辑了该文件,并注释掉了第77行,然后尝试
cd /usr/lib/ruby/gems/1.9.1/gems/libv8-3.11.8.13/vendor/v8
make然而,这只是给出了不同的错误:
In file included from /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winsock2.h:56:0,
from ../src/win32-headers.h:77,
from ../src/platform-win32.cc:31:
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/psdk_inc/_fd_types.h:100:2: warning: #warning "fd_set and associated macros have been defined in sys/types. This can cause runtime problems with W32 sockets"
In file included from ../src/win32-headers.h:80:0,
from ../src/platform-win32.cc:31:
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/wspiapi.h:26:41: error: expected ‘>’ before numeric constant
../src/platform-win32.cc: In function ‘int random()’:
../src/platform-win32.cc:122:12: error: new declaration ‘int random()’
/usr/include/cygwin/stdlib.h:29:6: error: ambiguates old declaration ‘long int random()’发布于 2013-02-12 11:06:03
既然你的问题提到了Cygwin,我假设你是Windows用户。目前,还没有办法像它的维护者therubyracer gem on windows所说的那样在Windows中安装therubyracer或libv8。不幸的是,Windows不是Rails的土地。
如果您确实需要libv8,您可以尝试nodejs。它附带了一个二进制文件,对所有平台都很方便。
发布于 2013-07-19 21:48:57
我觉得对于那些只想让错误消失的人来说应该有一个答案,这样他们就可以继续学习rails了。
看起来你并不需要特别的'therubyracer‘--你可以选择其他的javascript引擎。
具体来说,打开文件Gemfile,并将'therubyracer‘更改为'therubyrhino’。(如果rhino不起作用,有更多的选择和建议:https://github.com/sstephenson/execjs#readme
发布于 2013-02-22 21:31:29
我刚刚在我的Win7开发机器上遇到了同样的问题。它看起来像是安装https://github.com/hiranpeiris/therubyracer_for_windows并将gem 'therubyracer'添加到Gemfile中来解决问题。
之前:
$ rails generate
c:/Ruby193/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
from c:/Ruby193/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs.rb:5:in `<module:ExecJS>'
(...)这基本上意味着Rails需要rubyracer,因此需要libv8。
之后:
$ rails generate
SECURITY WARNING: No secret option provided to Rack::Session::Cookie.
This poses a security threat. It is strongly recommended that you
provide a secret to prevent exploits that may be possible from crafted
cookies. This will not be supported in future versions of Rack, and
future versions will even invalidate your existing user cookies.
Called from: c:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/session/abstract_store.rb:28:in `initialize'.
Usage: rails generate GENERATOR [args] [options]
(...)https://stackoverflow.com/questions/14823975
复制相似问题