💨
mac で fast_trie がエラーでインストールできない
先日 mac で bundle install
を実行したところ以下のようなエラーが出ました。
Building native extensions. This could take a while...
ERROR: Error installing fast_trie:
ERROR: Failed to build gem native extension.
ちゃんと確認した感じ fast_trie
というパッケージをインストールする際に発生しているようです。ちゃんとエラーを確認すると…
compiling trie.c
trie.c:84:8: error: implicit declaration of function 'trie_has_key' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
if(trie_has_key(trie, (TrieChar*)RSTRING_PTR(key)))
のようなエラーが出ています。
これは C99 という ISO で定められたC言語の規格に違反している際に出るエラーです。これは構文エラーではないのでビルドすることはできます。
以前は出てなかったのですが、xcodeをアップデートした際にコンパイラがアップデートしてこのようなエラーが出るようになったと思われます。
本当はこういったエラーがないバージョンに上げる必要がありますが、すぐに対応が厳し場合もあると思います。(fast_trieは数年更新されていない)
そういった場合は一旦このエラーを無視してビルドすることもできます。
--with-cflags=-Wno-error=implicit-function-declaration
というオプションを付かけることで無視することができます。
$ bundle config --local build.fast_trie --with-cflags=-Wno-error=implicit-function-declaration
$ bundle install
同様の現象が thin
という gem でも発生しました。
こちらも同様に対応することが可能です。
Discussion
fast_trie をTypo
大埔とTypoしていたので修正しているように見えます。bundle config --local build.fast_trie --with-cflags=-Wno-error=implicit-function-declaration
ではないでしょうか?
ありがとうございます!typoしてたので修正しました!
この問題でめちゃくちゃハマったので助かりました。