1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ついこの間までbundle installできていたのに、ある日突然 gem ffi でエラーがでるようになったときにすること(@MacOS)

Last updated at Posted at 2021-03-09

はじめに

忘れてしまうので備忘録と解決策の共有になります。主にMac OSの方を想定してます。

ざっくり診断

  • OSの更新やXcodeのアップデートによってXcode(というよりコマンドラインツール?)がインストールできてないと発生すると思われる。
  • ffiのバージョンによって発生すると思われる。

対応方法

・ Xcodeがインストールされてないとき

Xcodeをインストールする。

# インストール
# すでにインストールされている場合は、 xcode-select: error: command line tools are already installed, use "Software Update" to install updates が出力される。

xcode-select --install

メモ
このパターンに該当する場合は、エラーメッセージにYou have to install development tools firstみたいなメッセージが出てたと記憶。
ちなみに、利用規約に同意していない場合にも発生するので注意。

参考:
【解決方法】Macで gem ffi の インストール (アップデート) に 失敗する

・ ffiのバージョンを変えてもいいとき(バージョン更新してもいいとき)

ffiのバージョンを更新する(一番手取り早い気がする)。

# ffiのバージョン更新
bundle update ffi

メモ
参考元の記事だとダウングレード〜と書かれているが最新のものにしても直ったのである特定のバージョンで発生すると思われる。

参考:
ffi (1.9.21) instalation fails in linux

・ ffiのバージョンを変えたくないとき

オプションをつけて対応する。

# bundleのcondigに次のフラグをセット
bundle config --local build.ffi "--with-cflags=-Wno-implicit-function-declaration"

bundle install

メモ
参考元の記事を読むに、MacOSでC言語などのコードを暗黙的にbuildしようとするとエラーを出す、というのがデフォルト設定らしい。
このオプションをつけることで明示的になるからエラーが出なくなる(と思われる)。

参考:
Native extension won’t compile on macOS 10.16/11.0 Big Sur beta

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?