Mac M1芯片编译openjdk报错问题解决

使用命令: sudo sh configure --with-target-bits=64

用mac m1芯片编译openjdk一直报错:

configure: The tested number of bits in the target (64) differs from the number of bits expected to be found in the target (32)
configure: error: Cannot continue.
/Users/mac/Documents/jdkcompile/jdk-jdk-11-ga/build/.configure-support/generated-configure.sh: line 82: 5: Bad file descriptor
configure exiting with result code 1

Mac M1芯片编译openjdk报错问题解决_第1张图片

原因很奇怪,大家都知道mac m1的系统是ARM64架构的,看了下generated-configure.sh脚本中对with-target-bits这样赋值的:

Mac M1芯片编译openjdk报错问题解决_第2张图片

我们可以加行代码,输出看下VAR_CPU_BITS具体是多少,结果输出的是32,但是其实我们的系统本身是64位的,所以你把编译命令改为sudo sh configure --with-target-bits=32后面依然会报错的

  {
    echo "${VAR_CPU_BITS}: =============="
  }

Mac M1芯片编译openjdk报错问题解决_第3张图片

这时候只需要强制加把OPENJDK_TARGET_CPU_BITS的值改为64就可以解决了,记得加在

OPENJDK_TARGET_CPU_BITS="$VAR_CPU_BITS"后面一行,或者替换掉这行

  OPENJDK_TARGET_CPU_BITS=64

Mac M1芯片编译openjdk报错问题解决_第4张图片

然后再试下命令:sudo sh configure --with-target-bits=64

ok完美解决

Mac M1芯片编译openjdk报错问题解决_第5张图片

你可能感兴趣的:(macos)