在MacBigSurM1上安装Ruby2.2.9时出现问题
我尝试在 Big Sur - M1 芯片组上安装 Ruby 2.2.9。
我尝试使用 RVM、ASDF ......但在编译过程中总是出现此错误:
encoding.c:825:2: error: implicit declaration of function 'rb_str_change_terminator_length' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
rb_str_change_terminator_length(obj, oldtermlen, termlen);
回答
好吧,答案是通过尝试旧版本的命令行工具来反复试验,因为它是 BigSur 我现在不是支持的最旧版本,否则您可以降级到 Catalina 并使用命令行工具 11.4.1。问题是旧的 ruby 版本无法编译,因为一些与当时使用的编译器有关的叮当错误(在帖子中回答了这个问题)。最后一个非常重要的提及是使用 RBENV 如果 M1 macs 支持。
我回答了一个类似的问题,但与 Catalina 一起回答。如果有帮助。
您还可以尝试设置此标志以忽略错误(在安装过程之前):
export optflags="-Wno-error=implicit-function-declaration"
一位同事找到了这个修复程序(他正在运行带有 Big Sur 的 16 英寸 macbook)
- If you are using rbenv this command should work `CFLAGS="-Wno-error=implicit-function-declaration" rbenv install 2.2.9`. Source: https://www.bountysource.com/issues/94169702-installing-older-ruby-versions-on-osx-after-xcode-12