本文主要是介绍Mac下编译Captuocr:mkmf.rb can't find header files for ruby at 错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
编译CaptuocrToy: https://github.com/gragrance/CaptuocrToy
1.运行命令的时候:sudo gem install -n /usr/local/bin cocoapods 报错:mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h
参考帖子解决方案:https://stackoverflow.com/questions/20559255/error-while-installing-json-gem-mkmf-rb-cant-find-header-files-for-ruby/35895505
For Xcode 11 on macOS 10.14, this can happen even after installing Xcode and installing command-line tools and accepting the license with
sudo xcode-select --install
sudo xcodebuild -license accept
The issue is that Xcode 11 ships the macOS 10.15 SDK which includes headers for ruby2.6, but not for macOS 10.14's ruby2.3. You can verify that this is your problem by running
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
which on macOS 10.14 with Xcode 11 prints the non-existent path
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0
However, Xcode 11 installs a macOS 10.14 SDK within /Library/Developer/CommandLineTools/SDKs/MacOS10.14.sdk
. It isn't necessary to pollute the system directories by installing the old header files as suggested in other answers. Instead, by selecting that SDK, the appropriate ruby2.3 headers will be found:
sudo xcode-select --switch /Library/Developer/CommandLineTools
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
This should now correctly print
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0
Likewise, gem install
should work while that SDK is selected.
To switch back to the current Xcode SDK, use
sudo xcode-select --switch /Applications/Xcode.app
2. 运行BuildArea/autobuild.sh命令,同样有个错误:
(base) iotlabs-MacBook-Pro:CaptuocrToy iotlab$ BuildArea/autobuild.sh
=== START TO BUILD CAPTUOCR ===
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
mv: rename build/Build/Products/Release/Captuocr.app to /Users/iotlab/Documents/Captuocr_20200402_184754.app: No such file or directory
解决:
(base) iotlabs-MacBook-Pro:CaptuocrToy iotlab$ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
这篇关于Mac下编译Captuocr:mkmf.rb can't find header files for ruby at 错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!