在安装了 libv8 的 Windows 上安装 therubyracer --with-system-v8

Posted

技术标签:

【中文标题】在安装了 libv8 的 Windows 上安装 therubyracer --with-system-v8【英文标题】:therubyracer installation on windows with libv8 installed --with-system-v8 【发布时间】:2013-10-08 04:38:25 【问题描述】:

我终于在我的 Windows 上安装了 libv8 gem install libv8 -- --with-system-v8

现在当我尝试安装 therubyracer 时,我得到了

gem install therubyracer
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
Building native extensions.  This could take a while...
ERROR:  Error installing therubyracer:
        ERROR: Failed to build gem native extension.

        C:/Ruby193/bin/ruby.exe extconf.rb --with-system-v8
checking for main() in -lpthread... no
checking for v8.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=$opt-dir/include
        --with-opt-lib
        --without-opt-lib=$opt-dir/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=C:/Ruby193/bin/ruby
        --with-pthreadlib
        --without-pthreadlib
        --enable-debug
        --disable-debug
        --with-v8-dir
        --without-v8-dir
        --with-v8-include
        --without-v8-include=$v8-dir/include
        --with-v8-lib
        --without-v8-lib=$v8-dir/
C:/Ruby193/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/libv8/location.rb:50:in `configure': You hav
e chosen to use the version of V8 found on your system (Libv8::Location::System::NotFoundError)
and *not* the one that is bundle with the libv8 rubygem. However,
it could not be located. please make sure you have a version of
v8 that is compatible with 3.16.14.3 installed. You may
need to special --with-v8-dir options if it is in a non-standard
location

thanks,
The Mgmt

我想知道这个错误信息的真正含义是什么? 我也查了https://github.com/cowboyd/libv8#bring-your-own-v8 如何为 v8 安装标头?

【问题讨论】:

【参考方案1】:

当我遇到这个问题时,我发现我在开发中不需要那些gem,因为rails用来预编译你的资产,所以我的解决方案很简单,

宝石文件

gem "rails"

group :production do
  gem 'therubyracer'
end

然后当你捆绑运行这个命令

$ bundle install --without production

然后对生活微笑:D

【讨论】:

我不同意你的观点,基于 ruby​​ racer 是一个 gem,rails 只用来预编译你的资产,所以实际上你需要在你的生产服务器中。 虽然这是一个可能的解决方案,但它不是问题的答案。【参考方案2】:

在 Mac 上,您可以尝试使用 homebrew 更新 v8 库:

gem uninstall libv8
brew install v8
gem install therubyracer

更新:抱歉,没有意识到这是一个仅限 Windows 的问题。

【讨论】:

问题是关于Windows的。 我最终只需要brew install v8(没有gem uninstall libv8【参考方案3】:

@Aalap

我在 Windows 7 64 位上设置我的 Ruby on Rails Web 应用程序时遇到了同样的问题。我遇到了这个solution。这有点旧,但解决了问题。该解决方案提供了“therubyracer”gem 文件和要安装的 v8.dll 库。上面的链接上的说明非常清楚。

我像Periback's answer on SO 一样安装了“libv8”gem,当我尝试安装“therubyracer”gem 时,它失败并出现与您相同的错误。现在我的 Web 应用程序运行良好,我的“gem list”命令显示:

libv8 (3.11.8.13)

therubyracer (0.11.0beta1 x86-mingw32)

希望这会有所帮助。

【讨论】:

以上是关于在安装了 libv8 的 Windows 上安装 therubyracer --with-system-v8的主要内容,如果未能解决你的问题,请参考以下文章

如何使用预安装的 libv8 gem 和预编译的 v8 依赖项在 aarch64 上安装 therubyracer?

Solaris 10 中的 libv8 安装(SPARC 架构,gcc 4.6.3)

尝试安装 libv8 v3.11.8.9 时如何解决此问题?

修复 Mavericks 上的 ruby​​racer/libv8 (0.12.1) 安装

无法安装rubyracer

gem 在 OSX 10.15 上安装 therubyracer -v 0.12.3