这是我第一次带红宝石。
我从github克隆了这个项目。
https://github.com/fredwu/angel_nest
我花了一些时间来设置和弄清楚事情。 这个项目是很久以前制作的,我遇到很多兼容性问题。
当我进行“捆绑安装”时
我收到此错误,捆绑程序停止了。
Gem :: Installer :: ExtensionBuildError:错误:无法生成gem本机扩展。 /Users/divyanshuverma/.rvm/rubies/ruby-1.9.3-p551/bin/ruby extconf.rb检查-lobjc中的main()...是创建Makefile
进行编译v8_external.cpp clang:警告:参数在执行期间未使用 编译:'-rdynamic'[-Wunused命令行参数] v8_external.cpp:10:9:警告:未使用的变量'引用' [-Wunused-variable] VALUE个引用; ^ 1个警告生成。编译v8_exception.cpp clang:警告:编译期间未使用参数:'-rdynamic' [-Wunused-command-line-argument] v8_exception.cpp:10:16:警告: 未使用的变量'stack'[-Wunused-variable] static void * stack [20]; ^ 1个警告生成。编译v8_function.cpp clang:警告:编译期间未使用参数:'-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-command-line-argument] v8_v8.cpp:22:49:警告:隐式 转换失去整数精度:“ 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: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”扩展 (long)(((RBASIC(str)-> flags >> RSTRING_EMBED_LEN_SHIFT)&\ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ v8_v8.cpp:22:49:警告:隐式转换失去了整数精度: '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) ~~~~~~~~~~~~~~~~~~~~~ ^^ ~~产生2条警告。编译v8_callbacks.cpp lang语:警告:编译期间未使用参数: '-rdynamic'[-Wunused-command-line-argument]编译v8_string.cpp 铛:警告:编译期间未使用的参数:'-rdynamic' [-Wunused-command-line-argument] v8_string.cpp:18:73:警告: 隐式转换失去整数精度:“ long”到“ int” [-Wshorten-64-to-32] 返回rr_v8_handle_new(string_class,String :: 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”扩展 (long)(((RBASIC(str)-> flags >> RSTRING_EMBED_LEN_SHIFT)&\ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ v8_string.cpp:18:73:警告:隐式转换丢失整数 精度:“ long”到“ int” [-Wshorten-64-to-32] 返回rr_v8_handle_new(string_class,String :: 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'to'int' [-Wshorten-64-to-32] 返回rr_v8_handle_new(string_class,String :: 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”扩展 (long)(((RBASIC(str)-> flags >> RSTRING_EMBED_LEN_SHIFT)&\ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ v8_string.cpp:23:79:警告:隐式转换丢失整数 精度:“ long”到“ int” [-Wshorten-64-to-32] 返回rr_v8_handle_new(string_class,String :: 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) ~~~~~~~~~~~~~~~~~~~~~ ^^ ~~产生4条警告。编译v8_message.cpp clang:警告:编译期间未使用参数: '-rdynamic'[-Wunused-command-line-argument]编译rr.cpp clang: 警告:编译期间未使用参数:'-rdynamic' [-Wunused-command-line-argument] rr.cpp:48:1:警告:控制权到达 非无效函数的结尾[-Wreturn-type]} ^ rr.cpp:151:44:警告: 隐式转换失去整数精度:“ long”到“ int” [-Wshorten-64-to-32] 返回String :: New(RSTRING_PTR(value),RSTRING_LEN(value)); ~~~~~~ ^ ~~~~~~~~~~~~~~~~ / Users / divyanshuverma / .rvm / rubies / ruby-1.9.3-p551 / include / ruby-1.9.1 /红宝石/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”扩展 (long)(((RBASIC(str)-> flags >> RSTRING_EMBED_LEN_SHIFT)&\ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ rr.cpp:151:44:警告:隐式转换失去整数精度: 'long'到'int'[-Wshorten-64-to-32] 返回String :: New(RSTRING_PTR(value),RSTRING_LEN(value)); ~~~~~~ ^ ~~~~~~~~~~~~~~~~ / Users / divyanshuverma / .rvm / rubies / ruby-1.9.3-p551 / include / ruby-1.9.1 /红宝石/ruby.h:675:28: 注意:从宏“ RSTRING_LEN”扩展 RSTRING(str)-> as.heap.len) ~~~~~~~~~~~~~~~~~~~~~ ^ ~~生成3条警告。编译v8_weakref.cpp clang:警告:编译期间未使用参数: '-rdynamic'[-Wunused-command-line-argument]编译v8_script.cpp 铛:警告:编译期间未使用的参数:'-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-command-line-argument] v8_value.cpp:100:9:警告:未使用 函数'ToInt32'[-Wunused-function] VALUE ToInt32(VALUE self){ ^ 1个警告生成。编译v8_object.cpp clang:警告:编译期间未使用参数:'-rdynamic' [-Wunused-command-line-argument] v8_object.cpp:77:19:警告:未使用 变量'proto'[-Wunused-variable] 处理原型(rr_rb2v8(prototype)); ^ 1个警告生成。编译v8_locker.cpp clang:警告:编译期间未使用参数:'-rdynamic' [-Wunused-command-line-argument] v8_locker.cpp:45:5:警告:控制 到达非无效函数的末尾[-Wreturn-type] } ^ v8_locker.cpp:85:5:警告:控制权到达非空函数[-Wreturn-type]的结尾 } ^产生2条警告。编译v8_template.cpp clang:警告:编译期间未使用参数:'-rdynamic' [-Wunused-command-line-argument]编译v8.cpp clang:警告: 编译期间未使用的参数:“-rdynamic” [-Wunused-command-line-argument]编译v8_context.cpp clang: 警告:编译期间未使用参数:'-rdynamic' [-Wunused-命令行参数]链接共享库v8.bundle 铛:错误:没有这样的文件或目录: '/Users/divyanshuverma/angel_nest/vendor/cache/ruby/1.9.1/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a' make:*** [v8.bundle]错误1
宝石文件将继续安装在 /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的较新版本上工作
答案 0 :(得分:1)
此版本仅由Gemfile.lock
锁定,这意味着项目本身可能没有特定要求。
您可以尝试通过bundle update
仅在没有完整bundle update therubyracer
的情况下更新此gem,很可能较新的版本也可以。