5
4

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 5 years have passed since last update.

Mac で Gem の native extension のビルドでエラーしてハマった時のメモ

Last updated at Posted at 2017-10-11

概要

問題

bundle install の途中、ffi という Gem の v1.9.18 をインストール中にエラー:

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

調査

もちろん次のように Gem を単体でインストールしようとしてもエラーする。

$ gem install ffi -v '1.9.18'

エラーメッセージの中には development tools を入れろとある。

The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.

メッセージでググってこのページを発見。

こちらを参考にさせていただきました。

解決

以下、参考ページに従って解決。

今回は xcode-select はすでにインストール済み。

$ xcode-select --version
xcode-select version 2347.

しかし、参考ページと同様、gcc コマンドが使えない状態だった。

$ gcc --version


Agreeing to the Xcode/iOS license requires admin privileges, please run “sudo xcodebuild -license” and then retry this command.

メッセージで言われたとおり sudo xcodebuild -license を実行する。

$ sudo xcodebuild -license
Password:


You have not agreed to the Xcode license agreements. You must agree to both license agreements below in order to use Xcode.

Hit the Enter key to view the license agreements at '/Applications/Xcode.app/Contents/Resources/English.lproj/License.rtf'

Enter を押すと、ライセンスが表示されて、Software License Agreements Press 'space' for more, or 'q' to quit と言われる(ここでスペース押せば同意?)。
最後まで読むと By typing 'agree' you are agreeing to the terms of the software license agreements. Type 'print' to print them or anything else to cancel, [agree, print, cancel] と言われるので aggree を入力して同意。

You can view the license agreements in Xcode's About Box, or at /Applications/Xcode.app/Contents/Resources/English.lproj/License.rtf

これで gcc コマンドが使えるようになった。

$ gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/c++/4.2.1
Apple LLVM version 9.0.0 (clang-900.0.37)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

こうして ffi もインストールでき、めでたく bundle install も通りましたとさ。

$ gem install ffi -v '1.9.18'
Building native extensions.  This could take a while...
Successfully installed ffi-1.9.18
Parsing documentation for ffi-1.9.18
Installing ri documentation for ffi-1.9.18
Done installing documentation for ffi after 20 seconds
1 gem installed

余談

正直、具体的にどこで gcc が使われているのかわかっていません...

5
4
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
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?