维护良好的溶液,信号-CLI,至少需要Java 21。 我的NAS是ARMV7(ARM Cortex-A15)。我能找到的唯一的预先构建的
armv7兼容的二进制文件对GLIBC的依赖性比我安装的更高(glibc_2.18)(2.17)。 我过去几天的大部分时间都尝试使用linarotool-chain
.。 我似乎遇到的问题是OpenJDK需要大于6.0的GCC版本,该版本以lib>2.17.的形式建立。
是否有跨编译工具可以帮助我解决这个问题? IE。 gcc> = 6.0,libc2.17.我也向解决我用例的任何其他解决方案开放。 chatgpt在我使用它来诊断编译器错误时向我介绍了替代解决方案:交叉编译并安装
Glibc2.18这是一个相对直截了当的操作(请参见下面的注释)。
结果是我现在可以从Bellsoft安装
PRE构建的JDK安装,它运行良好。
要清楚,我在其自己的位置并行安装了glibc 2.18,然后手动指定了通往Java环境的库路径。可以在启动器脚本中使用合适的
LD_LIBRARY_PATH
简化这一点:
#!/bin/bash
# Launch local Java application using the local glibc 2.18 dynamic loader.
PATH=signal/jdk-21.0.6/bin:$PATH
LD_LIBRARY_PATH=LD_LIBRARY_PATH="signal/sysroot_built/lib:signal/glibc-2.18/lib"
signal/glibc-2.18/lib/ld-2.18.so java JavaMain
我确实必须进行3个更改才能使图书馆使用
GCC-Linaro-7.5.0:
:我必须补丁
../configure
接受我的较新版本
make
:
../configure
,在第4775行附近,将3.79* | 3.[89]*
更改为3.79* | 3.[89]* | 4.*
add
_Unwind_Resume
__attribute_used__
../ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c
../ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-resume.c
../configure --prefix=~/local/glibc-2.18 --host=arm-linux-gnueabihf --build=x86_64-linux-gnu
make -j15
make install