我和Jongwook Choi做了类似的事情,以下环境和问题作为案例参考。
我使用的是macOS 12.6.2。当我尝试通过运行sudo gem install cocoapods来安装cocoapods时,出现了问题。
在阅读终端反馈中建议的日志并阅读其引用的源代码后,很明显这是macOS 12.6.2内置文件的一个错误。
在我的情况下,我按照以下步骤操作,成功安装了cocoapods。
原始错误
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/ruby.h:33:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/ruby/ruby.h:24:10: fatal error: 'ruby/config.h' file not found
动作 1
The file `config.h` is missing. So I build the symbolink in the folder
cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/ruby/
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/universal-darwin22/ruby/config.h
第二个指的是一个名为
universal-darwin21
的文件夹。
然而,我尝试使用
uname -r
并得到了
21.6
,所以我认为创建一个符号链接"universal-darwin21"来解决问题显然不会有影响。
原始错误
make: *** No rule to make target `/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/universal-darwin21/ruby/config.h', needed by `AbstractMemory.o'. Stop.
动作 2
cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/universal-darwin22 universal-darwin21
安装成功后,如果查看日志文件/Library/Ruby/Gems/2.6.0/extensions/universal-darwin-21/2.6.0/ffi-1.15.5/gem_make.out
,仍会输出一些警告。如果仔细研究这些警告,会发现缺少一些明显缺失的文件夹,这是系统文件/文件夹的问题,而不是用户操作有误。
rbenv
。尝试卸载并重新安装xcode
工具。但只有这个解决方案有效。尽管如此,我认真考虑在所有这些事情之后备份一切并重置我的机器。 - Sylvan D Ashuniversal-darwin21
文件夹中,因此我必须更新命令为ln -sf universal-darwin21 universal-darwin19
,并且还要添加ln -sf universal-darwin21 universal-darwin20
才能使我的项目构建成功。 - Kevin Johnsoncd $(xcode-select -p)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/include/ruby-2.*
universal-darwin*/
目录(可能有多个),然后使用较低版本号(例如,20或21)创建符号链接,例如:sudo ln -s universal-darwin21 universal-darwin20
。cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/ruby/
然后是 ´sudo ln -sf ../../../../Headers/ruby/config.h接着
cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0和
sudo ln -sf universal-darwin21 universal-darwin20` - jonashacktln -sf universal-darwin[x] universal-darwin[x-1]
,其中x是存在于.../include/ruby-2.6.0路径下的版本号。对于我来说,它是ln -sf universal-darwin22 universal-darwin21
。 - Grant Kamin