macOS Mojave 'ruby/config.h' ファイルが見つかりません 質問する

macOS Mojave 'ruby/config.h' ファイルが見つかりません 質問する

macOS Mojave(10.14.1)でrubyサポート(--enable-rubyinterp)付きでvim(8.1.0509)をビルドしようとすると、エラーが発生します:

In file included from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0/ruby.h:33:
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0/ruby/ruby.h:24:10: fatal error:
      'ruby/config.h' file not found
#include "ruby/config.h"

Xcode 10.1をインストールしました。

xcode-select -p
/Applications/Xcode.app/Contents/Developer

ベストアンサー1

注記:この回避策は機能しますが、パスを盲目的にコピー/貼り付けすることはできません。代わりに、インストール時に表示されたエラーを確認してください。次のようなメッセージが表示されます。

この拡張機能がコンパイルに失敗した理由を確認するには、次の場所にある mkmf.log を確認してください: /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-21/2.6.0/ffi-1.15.5/mkmf.log

ログを開いて何が見つからないか確認してください。正しいバージョンが示されMacOSX__._.sdkuniversal-darwin-__リンクする必要があります。

カタリナ、ビッグサーなど(2020年、2021年、2022年、2023年現在)

更新: この回避策は 2023 年現在でも機能します。以下のコマンドでは、macOS バージョン環境に応じてバージョン文字列 (例: 11.1、ruby 2.6、universal-darwin20 など) を変更してください。


macOS と Xcode の最近のバージョン (例: Catalina 10.15 および Xcode 12.2) では、これが壊れています。Xcode を再インストールしても、まったく役に立ちませんでした (すでに投稿されている解決策は古いようです)。厄介な問題が発生する可能性があるため、xcode-select --install使用したくありませんでした。rvm

手動でシンボリックリンクを作成することで回避策を実行しました。

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/ruby
ln -sf ../../../../Headers/ruby/config.h

詳細は以下ruby/config.hをご覧ください/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/Headers/ruby/config.h

現在の Xcode インストールに応じて、SDK バージョン (上記の例では 11.1 など) を変更する必要があります。

.../universal-darwin19/ruby/config.hまた、見つからないという別のエラーが発生する可能性も非常に高いです(Commonmarker gem をインストールできません (jekyll に必要) macos) 次のように簡単に修正できます。

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0
ln -sf universal-darwin20 universal-darwin19

この回避策を使用した後、次のようにクラッシュが発生する場合pod install:

/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5/lib/ffi/library.rb:275: [BUG] 0x0000000100f38000 でバス エラーが発生しています

フォローするこの解決策

おすすめ記事