我在 macOS Big Sur 中查看了此Ruby 安装 (2.2.2) 失败
我的 macOS 是 Big Sur,我拥有的版本是 11.2,它是我能找到的最接近我的操作系统问题的版本,我尽我所能尝试
CFLAGS="-Wno-error=implicit-function-declaration" rbenv install 2.5.3
Run Code Online (Sandbox Code Playgroud)
并且
RUBY_CFLAGS=-DUSE_FFI_CLOSURE_ALLOC rbenv install 2.5.3
Run Code Online (Sandbox Code Playgroud)
这是我终端中的输出:
Downloading openssl-1.1.1i.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242
Installing openssl-1.1.1i...
Installed openssl-1.1.1i to /Users/richard/.rbenv/versions/2.5.3
Downloading ruby-2.5.3.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.3.tar.bz2
Installing ruby-2.5.3...
WARNING: ruby-2.5.3 is nearing its end of life.
It only receives critical security updates, no bug fixes.
ruby-build: using readline from homebrew
/opt/homebrew/bin/ruby-build: line 1121: 31528 Killed: 9 "$RUBY_BIN" -e '
manager = ARGV[0]
packages = { …Run Code Online (Sandbox Code Playgroud) 鉴于输出的布尔值下面的代码是
A: false
B: false
C: true
Run Code Online (Sandbox Code Playgroud)
当我试图减去V1 + V2的总和时,任何小于65的东西都不起作用,就好像减法永远不会发生一样.如果我将原语切换为double,问题就解决了.为什么会这样?
private static final float V1 = 1076712940;
private static final float V2 = 1070770707;
public static void main(final String[] args) {
final float y = V1 + V2;//2147483647
System.out.println("A: ((y - 64) - 1) == (y - 65) --> "
+ (((y - 64) - 1) == (y - 65))); /* A */
System.out.println("B: (y > y - 64) --> " + (y > y - 64)); /* B */ …Run Code Online (Sandbox Code Playgroud)