1

coccon gem のインストール中にこのエラーが発生しました。誰も同じ問題を抱えていますか?Ruby 2.0.0p353、Rails 4.0、RVM を使用しています

ERROR:  Error installing cocoon:
ERROR: Failed to build gem native extension.

    /home/user/.rvm/rubies/ruby-2.0.0-p353/bin/ruby extconf.rb
checking for st.h... yes
creating Makefile

make
compiling handler.c
compiling gram.c
compiling token.c
token.re: In function ‘sycklex_yaml_utf8’:
token.re:541:36: warning: variable ‘lvl’ set but not used [-Wunused-but-set-variable]
compiling syck.c
compiling rubyext.c
rubyext.c: In function ‘mktime_do’:
rubyext.c:292:19: warning: unused variable ‘offset’ [-Wunused-variable]
rubyext.c: In function ‘rb_syck_load_handler’:
rubyext.c:664:5: warning: implicit declaration of function ‘rb_hash_size’ [-Wimplicit-       function-declaration]
rubyext.c: In function ‘rb_syck_err_handler’:
rubyext.c:684:12: warning: format ‘%d’ expects argument of type ‘int’, but argument 5 has type ‘long int’ [-Wformat]
rubyext.c: In function ‘syck_const_find’:
rubyext.c:1047:5: warning: implicit declaration of function ‘rb_ary_size’ [-Wimplicit-function-declaration]
rubyext.c: In function ‘syck_scalar_value_set’:
rubyext.c:1481:27: error: ‘struct RString’ has no member named ‘ptr’
rubyext.c: In function ‘syck_seq_initialize’:
rubyext.c:1509:15: warning: variable ‘node’ set but not used [-Wunused-but-set-variable]
rubyext.c: In function ‘syck_node_type_id_set’:
rubyext.c:1741:25: error: ‘struct RString’ has no member named ‘ptr’
make: *** [rubyext.o] Error 1
4

3 に答える 3

2

cocoon gem は、Rubinius 固有の gem 依存関係を gemspec に放出する Jeweler を使用しています。gemspec から作成され、MRI にインストールされると予想される gem には、これらの依存関係が含まれます。cocoon gem でこれを修正するためにプル リクエストを送信しました: https://github.com/nathanvda/cocoon/pull/184

一般に、ここに投稿された問題が作成者に通知されない可能性があるため、gem のソース リポジトリに問題を報告することをお勧めします。

于 2013-12-06T04:46:47.530 に答える
1

Cocoon 1.2.4 には壊れた gemspec がありましたが、これはすぐにリリースされた 1.2.5 で修正されました。したがって、これは今すぐ機能するはずです。

于 2013-12-06T07:40:07.457 に答える
0
# cd /path/rubysl-yaml-2.0.4
# vi ext/rubysl/syck/rubyext.c

変更 (RSRING -> RSTRING_PTR)

#define syck_copy_string(val) syck_strndup(RSTRING(val)->ptr, RSTRING_LEN(val))

#define syck_copy_string(val) syck_strndup(RSTRING_PTR(val)->ptr, RSTRING_LEN(val))

そしてgemのビルドとインストール

# gem build rubysl-yaml.gemspec && gem install rubysl-yaml-2.0.4.gem

幸運を

于 2013-12-05T03:29:32.717 に答える