🦔
M3 MacBookAir でRailsの環境構築していたらgemのインストールで手こずった話
対象エラー
新しいM3のMac でRails アプリケーションの環境構築をしていた。
bundle installしてたらやたらエラーにぶつかった。
いろんなgemが同じエラーがでる。
調べるとgemのレポジトリ各種でissueがたっていた。
エラーはこんな感じ。
compiling bytebuffer.c
bytebuffer.c:308:20: warning: implicit conversion loses integer precision: 'ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
return INT2NUM(bytes_read);
~~~~~~~ ^~~~~~~~~~
bytebuffer.c:338:20: warning: implicit conversion loses integer precision: 'ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
return INT2NUM(bytes_written);
~~~~~~~ ^~~~~~~~~~~~~
2 warnings generated.
compiling monitor.c
monitor.c:185:40: warning: implicit conversion loses integer precision: 'VALUE' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
NIO_Monitor_update_interests(self, interest);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~
monitor.c:196:40: warning: implicit conversion loses integer precision: 'VALUE' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
NIO_Monitor_update_interests(self, interest);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~
2 warnings generated.
compiling nio4r_ext.c
解決策
オプションつけてやる
gem install (gem名) -v x.x.x -- --with-cflags="-Wno-incompatible-pointer-types"
各gemでissueもたっていて、バージョンアップしていれば問題ない。
しかしメンテされてないgem等の場合は今後解決できないので、オプションつけてやる
実際に実行したコマンド例
gem install jaro_winkler -v 1.5.4 -- --with-cflags="-Wno-incompatible-pointer-types"
もちろんバージョンアップが可能で修正済のgemであれば、バージョンアップで対応できたほうがいいです。
解決策ソース
参考にしたもの
mysql
nio4r
jaro_winkler
作業ログ
スクラップ
Discussion