从 ruby​​ 2.7 升级到 3.0 时遇到问题 - 错误:使用未声明的标识符“RUBY_FUNCTION_NAME_STRING”

Tra*_*ney 5 ruby development-environment rbenv ruby-upgrade ruby-3

我已经在努力尝试升级 Rails 3.0 大约一周了。

我不完全确定问题是什么,但我认为这可能是因为我同时拥有 rvm 和 rbenv。

我在这里遵循了 gorails 的升级教程:https ://gorails.com/setup/osx/12-monterey

但每当我跑步时:

$ rbenv install 3.0.3

我收到以下错误:

In file included from compile.c:40:
./vm_callinfo.h:217:16: error: use of undeclared identifier 'RUBY_FUNCTION_NAME_STRING'
    if (debug) rp(ci);
               ^
./internal.h:95:72: note: expanded from macro 'rp'
#define rp(obj) rb_obj_info_dump_loc((VALUE)(obj), __FILE__, __LINE__, RUBY_FUNCTION_NAME_STRING)
Run Code Online (Sandbox Code Playgroud)

这也是我的错误日志的一个例子:

In file included from compile.c:40:
./vm_callinfo.h:217:16: error: use of undeclared identifier 'RUBY_FUNCTION_NAME_STRING'
    if (debug) rp(ci);
               ^
./internal.h:95:72: note: expanded from macro 'rp'
#define rp(obj) rb_obj_info_dump_loc((VALUE)(obj), __FILE__, __LINE__, RUBY_FUNCTION_NAME_STRING)
                                                                       ^
2 errors generated.
make: *** [compile.o] Error 1
Run Code Online (Sandbox Code Playgroud)

我是一名初级开发人员,大部分时间都在编写 RoR 代码,但我确实不了解这种环境的东西,所以如果有人有任何我可以阅读的资源,这会有所帮助,我将不胜感激。如果我遗漏了任何重要信息,我深表歉意。请告诉我,我会尽快回复

Wil*_*man 10

该问题是由 Xcode 命令行工具过时引起的。使用以下脚本强制更新 Xcode 命令行工具。

sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install
Run Code Online (Sandbox Code Playgroud)


小智 1

试试这个我希望对你有用

brew update
brew upgrade
brew install llvm
export PATH="/usr/local/opt/llvm/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/llvm/lib"
export CPPFLAGS="-I/usr/local/opt/llvm/include"
rbenv install 3.0.3
rbenv rehash
Run Code Online (Sandbox Code Playgroud)