在 Mac Mojave 上安装旧版本的 TheRubyracer(v0.9.10) gem



这是我第一次在轨道上使用Ruby。

我从github克隆了这个项目。

https://github.com/fredwu/angel_nest

我花了一段时间来设置和弄清楚事情。 我遇到了很多兼容性问题,因为这个项目是很久以前制作的。

当我做"捆绑安装">
我收到此错误并且捆绑器停止。

Gem::

Installer::ExtensionBuildError: ERROR: 无法构建 gem 本机扩展。/Users/divyanshuverma/.rvm/rubies/ruby-1.9.3-p551/bin/ruby extconf.rb 在 -lobjc 中检查 main() ...是创建生成文件

使编译v8_external.cpp叮当声: 警告: 参数未使用 期间 编译: '-rdynamic' [-Wunused-command-line-argument] v8_external.cpp:10:9: 警告:未使用的变量"引用" [-未使用的变量] 值引用; ^ 生成 1 个警告。编译v8_exception.cpp叮当声:警告:编译期间未使用的参数:"-rdynamic" [-Wunused-syned-line-argument] v8_exception.cpp:10:16: 警告: 未使用的变量 'stack' [-Wunused-variable] 静态空隙* 堆栈[20]; ^ 生成 1 个警告。编译v8_function.cpp叮当声:警告:编译期间未使用的参数:"-rdynamic" [-Wunused-command-line-argument] 编译v8_handle.cpp clang: 警告:编译期间未使用的参数:"-rdynamic" [-wunused-command-line-argument] 编译v8_array.cpp clang: 警告:编译期间未使用的参数:"-rdynamic" [-wunused-command-line-argument] 编译v8_try_catch.cpp clang: 警告:编译期间未使用的参数:"-rdynamic" [-Wunused-command-line-argument] 编译v8_v8.cpp clang: 警告: 编译期间未使用的参数:"-rdynamic" [-Wunused-syned-line-argument] v8_v8.cpp:22:49:警告:隐式 转换会丢失整数精度:"long"到"int" [-缩短-64至-32] V8::SetFlagsFromString(RSTRING_PTR(string), RSTRING_LEN(string)); ~~ ^~~~~~~~~~~~~~~~~/Users/divyanshuverma/.rvm/rubies/ruby-1.9.3-p551/include/ruby-1.9.1/ruby/ruby.h:674:6: 注意:从宏"RSTRING_LEN"扩展 RSTRING_EMBED_LEN(str) : \ ^~~~~~~~~~~~~~~~~~~~/Users/divyanshuverma/.rvm/rubies/ruby-1.9.3-p551/include/ruby-1.9.1/ruby/ruby.h:670:6: 注意:从宏"RSTRING_EMBED_LEN"扩展 (长)((RBASIC(str)->flags>> RSTRING_EMBED_LEN_SHIFT) & \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~v8_v8.cpp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "long"到"int" [-wshorten-64-to-32] V8::SetFlagsFromString(RSTRING_PTR(string), RSTRING_LEN(string)); ~~ ^~~~~~~~~~~~~~~~~/Users/divyanshuverma/.rvm/rubies/ruby-1.9.3-p551/include/ruby-1.9.1/ruby/ruby.h:675:28: 注意:从宏"RSTRING_LEN"扩展 RSTRING(str)->as.heap.len) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~编译v8_callbacks.cpp叮当声: 警告: 编译期间未使用的参数: '-rdynamic' [-Wunused-command-line-argument] 编译v8_string.cpp clang:警告:编译期间未使用的参数:"-rdynamic" [-Wunused-syned-line-argument] v8_string.cpp:18:73: 警告: 隐式转换会丢失整数精度:"long"到"int" [-缩短-64至-32] 返回 rr_v8_handle_new(string_class, 字符串::New(RSTRING_PTR(str), RSTRING_LEN(str))); ~~~~~~ ^~~~~~~~~~~~~~~~/Users/divyanshuverma/.rvm/rubies/ruby-1.9.3-p551/include/ruby-1.9.1/ruby/ruby.h:674:6: 注意:从宏"RSTRING_LEN"扩展 RSTRING_EMBED_LEN(str) : \ ^~~~~~~~~~~~~~~~~~~~/Users/divyanshuverma/.rvm/rubies/ruby-1.9.3-p551/include/ruby-1.9.1/ruby/ruby.h:670:6: 注意:从宏"RSTRING_EMBED_LEN"扩展 (长)((RBASIC(str)->flags>> RSTRING_EMBED_LEN_SHIFT) & \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~v8_string.cpp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 精度:"长"到"整数" [-Wshorten-64 到 32] 返回 rr_v8_handle_new(string_class, 字符串::New(RSTRING_PTR(str), RSTRING_LEN(str))); ~~~~~~ ^~~~~~~~~~~~~~~~/Users/divyanshuverma/.rvm/rubies/ruby-1.9.3-p551/include/ruby-1.9.1/ruby/ruby.h:675:28: 注意:从宏"RSTRING_LEN"扩展 RSTRING(str)->as.heap.len) ~~~~~~~~~~~~~~~~~~~~~~~ v8_string.cpp:23:79:警告:隐式转换会丢失整数精度:"long"到"int" [-缩短-64至-32] 返回 rr_v8_handle_new(string_class, 字符串::NewSymbol(RSTRING_PTR(str), RSTRING_LEN(str))); ~~~~~~ ^~~~~~~~~~~~~~~~/Users/divyanshuverma/.rvm/rubies/ruby-1.9.3-p551/include/ruby-1.9.1/ruby/ruby.h:674:6: 注意:从宏"RSTRING_LEN"扩展 RSTRING_EMBED_LEN(str) : \ ^~~~~~~~~~~~~~~~~~~~/Users/divyanshuverma/.rvm/rubies/ruby-1.9.3-p551/include/ruby-1.9.1/ruby/ruby.h:670:6: 注意:从宏"RSTRING_EMBED_LEN"扩展 (长)((RBASIC(str)->flags>> RSTRING_EMBED_LEN_SHIFT) & \^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~v8_string.cpp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 精度:"长"到"整数" [-Wshorten-64 到 32] 返回 rr_v8_handle_new(string_class, 字符串::NewSymbol(RSTRING_PTR(str), RSTRING_LEN(str))); ~~~~~~ ^~~~~~~~~~~~~~~~/Users/divyanshuverma/.rvm/rubies/ruby-1.9.3-p551/include/ruby-1.9.1/ruby/ruby.h:675:28: 注意:从宏"RSTRING_LEN"扩展 RSTRING(str)->as.heap.len) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~编译v8_message.cpp叮当声: 警告: 编译期间未使用的参数: '-rdynamic' [-Wunused-command-line-argument] 编译 rr.cpp clang: 警告:编译期间未使用的参数:"-rdynamic" [-Wunused-syned-line-argument] rr.cpp:48:1:警告:控制达到 非空函数结束 [-Wreturn-type] } ^ rr.cpp:151:44: 警告: 隐式转换会丢失整数精度:"long"到"int" [-缩短-64至-32] 返回字符串::新建(RSTRING_PTR(值), RSTRING_LEN(值)); ~~~~~~ ^~~~~~~~~~~~~~~~~/Users/divyanshuverma/.rvm/rubies/ruby-1.9.3-p551/include/ruby-1.9.1/ruby/ruby.h:674:6: 注意:从宏"RSTRING_LEN"扩展 RSTRING_EMBED_LEN(str) : \ ^~~~~~~~~~~~~~~~~~~~/Users/divyanshuverma/.rvm/rubies/ruby-1.9.3-p551/include/ruby-1.9.1/ruby/ruby.h:670:6: 注意:从宏"RSTRING_EMBED_LEN"扩展 (长)((RBASIC(str)->flags>> RSTRING_EMBED_LEN_SHIFT) & \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.cpp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "long"到"int" [-wshorten-64-to-32] 返回字符串::新建(RSTRING_PTR(值), RSTRING_LEN(值)); ~~~~~~ ^~~~~~~~~~~~~~~~/Users/divyanshuverma/.rvm/rubies/ruby-1.9.3-p551/include/ruby-1.9.1/ruby/ruby.h:675:28: 注意:从宏"RSTRING_LEN"扩展 RSTRING(str)->as.heap.len) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~编译v8_weakref.cpp叮当声: 警告: 编译期间未使用的参数: '-rdynamic' [-wunused-command-line-argument] 编译v8_script.cpp clang:警告:编译期间未使用的参数:"-rdynamic" [-Wunused-command-line-argument] 编译v8_date.cpp clang: 警告: 编译期间未使用的参数:"-rdynamic" [-wunused-command-line-argument] 编译v8_debug.cpp clang: 警告:编译期间未使用的参数:"-rdynamic" [-wunused-command-line-argument] 编译v8_value.cpp clang: 警告:编译期间未使用的参数:"-rdynamic" [-Wunused-syned-line-argument] v8_value.cpp:100:9:警告:未使用 函数 'ToInt32' [-Wunused-function] VALUE ToInt32(VALUE self) { ^ 生成 1 个警告。编译v8_object.cpp叮当声:警告:编译期间未使用的参数:"-rdynamic" [-Wunused-syned-line-argument] v8_object.cpp:77:19:警告:未使用 变量 'proto' [-wunused-variable] 处理原型(rr_rb2v8(原型)); ^ 生成 1 个警告。编译v8_locker.cpp叮当声:警告:编译期间未使用的参数:"-rdynamic" [-Wunused-syned-line-argument] v8_locker.cpp:45:5:警告:控制 达到非空函数的结束[-返回型] } ^ v8_locker.cpp:85:5:警告:控制达到非无效功能的结束[-Wreturn类型] } ^ 生成 2 个警告。编译v8_template.cpp叮当声:警告:编译期间未使用的参数:"-rdynamic" [-Wunused-command-line-argument] 编译 v8.cpp 叮当: 警告: 编译期间未使用的参数:"-rdynamic" [-Wunused-command-line-argument] 编译v8_context.cpp clang: 警告:编译期间未使用的参数:"-rdynamic" [-Wunused-syned-line-argument] 链接共享对象 v8.bundle 叮�� '/Users/divyanshuverma/angel_nest/vendor/cache/ruby/1.9.1/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a' 制造: *** [v8.bundle] 错误 1

Gem 文件将保持安装在/Users/divyanshuverma/angel_nest/vendor/cache/ruby/1.9.1/gems/therubyracer-0.9.10 进行检查。结果记录到/Users/divyanshuverma/angel_nest/vendor/cache/ruby/1.9.1/gems/therubyracer-0.9.10/ext/v8/gem_make.out 安装 therubyracer (0.9.10) 和 Bundler 时出错 无法继续。确保gem install therubyracer -v '0.9.10'在捆绑之前成功。

我已经尝试了此方法在 StackOverflow 上可用的所有方法,但没有一种有效! 有没有办法覆盖此 Gem 的要求进行更改,以便项目适用于较新版本的 TheRubyracer Gem

此版本仅由Gemfile.lock锁定,这意味着项目本身可能没有特定要求。

您可以尝试仅通过以下方式更新此 gem,而无需完全bundle updatebundle update therubyracer,很可能较新的版本可以正常工作。

最新更新