Я впервые с рубином на рельсах.
Я клонировал этот проект из github.
https://github.com/fredwu/angel_nest
Мне потребовалось некоторое время, чтобы настроить и разобраться.
У меня много проблем с совместимостью, так как этот проект был сделан очень давно.
когда я делаю "комплектную установку"
Я получаю эту ошибку, и сборщик останавливается.
Gem :: Installer :: ExtensionBuildError: ОШИБКА: не удалось создать собственное расширение для gem.
/Users/divyanshuverma/.rvm/rubies/ruby-1.9.3-p551/bin/ruby extconf.rb проверяет main () в -lobjc ... yes создает Makefile
сделать компиляцию v8_external.cpp clang: warning: аргумент не используется во время
компиляция: '-rdynamic' [-Wunused-аргумент командной строки]
v8_external.cpp: 10: 9: предупреждение: неиспользуемая переменная «ссылки»
[-Wunused-variable] VALUE ссылки;
^ 1 предупреждение сгенерировано. compiling v8_exception.cpp clang: warning: аргумент не используется во время компиляции: '-rdynamic'
[-Wunused-аргумент командной строки] v8_exception.cpp: 10: 16: предупреждение:
неиспользуемая переменная 'stack' [-Wunused-variable] static void * stack [20];
^ 1 предупреждение сгенерировано. compiling v8_function.cpp clang: warning: аргумент не используется во время компиляции: '-rdynamic'
[-Wunused-аргумент командной строки] компилирует v8_handle.cpp clang:
предупреждение: аргумент не используется во время компиляции: '-rdynamic'
[-Wunused-аргумент командной строки] компилирует v8_array.cpp clang:
предупреждение: аргумент не используется во время компиляции: '-rdynamic'
[-Wunused-аргумент командной строки] компилирует v8_try_catch.cpp clang:
предупреждение: аргумент не используется во время компиляции: '-rdynamic'
[-Wunused-аргумент командной строки] компиляция v8_v8.cpp clang: warning:
аргумент, не использованный во время компиляции: '-rdynamic'
[-Wunused-аргумент командной строки] v8_v8.cpp: 22: 49: предупреждение: неявное
преобразование теряет целочисленную точность: от long до int
[-Wshorten-64-к-32]
V8 :: SetFlagsFromString (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) & \
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ v8_v8.cpp: 22: 49: предупреждение: неявное преобразование теряет целочисленную точность:
от 'long' до 'int' [-Wshorten-64-to-32]
V8 :: SetFlagsFromString (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 (ул) -> as.heap.len)
~~~~~~~~~~~~~~~~~~~~~~ ^ ~~ 2 сгенерированных предупреждения. compiling v8_callbacks.cpp clang: warning: аргумент не используется во время компиляции:
'-rdynamic' [-Wunused-аргумент командной строки] компилирует v8_string.cpp
clang: warning: аргумент не используется во время компиляции: '-rdynamic'
[-Wunused-аргумент командной строки] v8_string.cpp: 18: 73: предупреждение:
неявное преобразование теряет целочисленную точность: от 'long' до 'int'
[-Wshorten-64-к-32]
return 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'
(длинный) ((RBASIC (str) -> flags >> RSTRING_EMBED_LEN_SHIFT) & \^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ v8_string.cpp: 18: 73: предупреждение: неявное преобразование теряет целочисленную точность: от 'long' до 'int' [-Wshorten-64-to-32] return 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' до 'int' [-Wshorten-64-to-32] return 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): \ ^ ~~~~~~~~~~~~~~~~~~~~~ / Пользователи / 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] return 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-аргумент командной строки] Компиляция rr.cpp clang: предупреждение: аргумент не используется во время компиляции: '-rdynamic' [-Wunused-command-Строковый аргумент] rr.cpp: 48: 1: предупреждение: элемент управления достигает конца недействительной функции [-Wreturn-type]} ^ rr.cpp: 151: 44: предупреждение: неявное преобразование теряет целочисленную точность: от 'long' до'int' [-Wshorten-64-to-32] return String :: New (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: note: расширен из макроса 'RSTRING_EMBED_LEN' (long) ((RBASIC (str) -> flags >> RSTRING_EMBED_LEN_SHIFT) & \ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rr.cpp: 151: 44: предупреждение: неявное преобразование теряет целочисленную точность: от long до int [-Wshorten-64-to-32] returnString :: New (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) ~~~~~~~~~~~~~~~~~~~~~~ ^ ~~ 3 сгенерированных предупреждения.Компиляция v8_weakref.cpp clang: warning: аргумент не используется во время компиляции: '-rdynamic' [-Wunused-аргумент командной строки]строка-аргумент] компиляция v8_date.cpp clang: предупреждение: аргумент не используется во время компиляции: '-rdynamic' [-Wunused-аргумент командной строки]Wunused-command-line-аргумент] компиляция v8_value.cpp clang: warning: аргумент не используется во время компиляции: '-rdynamic'[-Wunused-аргумент командной строки] v8_value.cpp: 100: 9: предупреждение: не используется
function 'ToInt32' [-Wunused-function] VALUE ToInt32 (VALUE self) {
^ 1 предупреждение сгенерировано. compiling v8_object.cpp clang: warning: аргумент не используется во время компиляции: '-rdynamic'
[-Wunused-аргумент командной строки] v8_object.cpp: 77: 19: предупреждение: не используется
переменная 'proto' [-Wunused-variable]
Обрабатывать прото (rr_rb2v8 (прототип));
^ 1 предупреждение сгенерировано. compiling v8_locker.cpp clang: warning: аргумент не используется во время компиляции: '-rdynamic'
[-Wunused-аргумент командной строки] v8_locker.cpp: 45: 5: предупреждение: управление
достигает конца не пустой функции [-Wreturn-type]
}
^ v8_locker.cpp: 85: 5: предупреждение: управление достигает конца не пустой функции [-Wreturn-type]
}
^ 2 предупреждения сгенерированы. compiling v8_template.cpp clang: warning: аргумент не используется во время компиляции: '-rdynamic'
[-Wunused-аргумент командной строки] компилирует v8.cpp clang: warning:
аргумент, не использованный во время компиляции: '-rdynamic'
[-Wunused-аргумент командной строки], компилирующий v8_context.cpp clang:
предупреждение: аргумент не используется во время компиляции: '-rdynamic'
[-Wunused-аргумент командной строки] связывание разделяемого объекта v8.bundle
clang: ошибка: нет такого файла или каталога:
'/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
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 для этого метода, но ни один не работает!
Есть ли способ переопределить требования этого драгоценного камня внести изменения, так что проект работает на более новой версии therubyracer gem