无法在 Raspberry PI4 上执行 64 位库
Can't execute 64bit libs on Raspi PI4
我已经在我的 Raspi4 上激活了 64 位内核:
pi@pc:~ $ uname -a
Linux pc 5.10.63-v8+ #1496 SMP PREEMPT Wed Dec 1 15:59:46 GMT 2021 aarch64 GNU/Linux
pi@pc:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
我正在尝试在我的机器上 运行 最新 java 版本(原始 Oracle Arm 64 位版本)。虽然,运行尽管文件存在且可执行,但二进制文件会导致文件未找到错误:
pi@pc:~ $ /usr/lib/jvm/jdk-17.0.1/bin/java -version
bash: /usr/lib/jvm/jdk-17.0.1/bin/java: Datei oder Verzeichnis nicht gefunden
pi@pc:~ $ ls -la /usr/lib/jvm/jdk-17.0.1/bin/java
-rwxr-xr-x 1 root root 70856 Sep 27 19:45 /usr/lib/jvm/jdk-17.0.1/bin/java
只有 ldd 命令给出指示,程序未动态链接:
pi@pc:~ $ ldd /usr/lib/jvm/jdk-17.0.1/bin/java
das Programm ist nicht dynamisch gelinkt
显示以下输出的文件命令:
pi@pc:~ $ file /usr/lib/jvm/jdk-17.0.1/bin/java
/usr/lib/jvm/jdk-17.0.1/bin/java: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, not stripped
pi@pc:~ $ file /usr/lib/jvm/jdk1.8-oracle-ARM32/bin/java
/usr/lib/jvm/jdk1.8-oracle-ARM32/bin/java: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.26, BuildID[sha1]=c61f921ef55f64705b9f360005fb2b77e4a81ac3, not stripped
我不是 C/C++ 编程方面的专家。有什么办法,可执行文件可以在我的 Raspi 上 运行?
在 /usr/lib
中肯定“无法执行 64 位库”- 正如路径所暗示的那样。
对于 ARM64
架构,我认为这应该是 /usr/lib64
。
我正在使用 64 位的自定义 Raspberry 映像。我也运行陷入这个问题。我正在使用 Raspios:https://downloads.raspberrypi.org/raspios_lite_arm64/images/
使用下一个映像,您可以在 PI 上安装 java 17。到目前为止 运行 Java jar 没有问题。
我已经在我的 Raspi4 上激活了 64 位内核:
pi@pc:~ $ uname -a
Linux pc 5.10.63-v8+ #1496 SMP PREEMPT Wed Dec 1 15:59:46 GMT 2021 aarch64 GNU/Linux
pi@pc:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
我正在尝试在我的机器上 运行 最新 java 版本(原始 Oracle Arm 64 位版本)。虽然,运行尽管文件存在且可执行,但二进制文件会导致文件未找到错误:
pi@pc:~ $ /usr/lib/jvm/jdk-17.0.1/bin/java -version
bash: /usr/lib/jvm/jdk-17.0.1/bin/java: Datei oder Verzeichnis nicht gefunden
pi@pc:~ $ ls -la /usr/lib/jvm/jdk-17.0.1/bin/java
-rwxr-xr-x 1 root root 70856 Sep 27 19:45 /usr/lib/jvm/jdk-17.0.1/bin/java
只有 ldd 命令给出指示,程序未动态链接:
pi@pc:~ $ ldd /usr/lib/jvm/jdk-17.0.1/bin/java
das Programm ist nicht dynamisch gelinkt
显示以下输出的文件命令:
pi@pc:~ $ file /usr/lib/jvm/jdk-17.0.1/bin/java
/usr/lib/jvm/jdk-17.0.1/bin/java: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, not stripped
pi@pc:~ $ file /usr/lib/jvm/jdk1.8-oracle-ARM32/bin/java
/usr/lib/jvm/jdk1.8-oracle-ARM32/bin/java: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.26, BuildID[sha1]=c61f921ef55f64705b9f360005fb2b77e4a81ac3, not stripped
我不是 C/C++ 编程方面的专家。有什么办法,可执行文件可以在我的 Raspi 上 运行?
在 /usr/lib
中肯定“无法执行 64 位库”- 正如路径所暗示的那样。
对于 ARM64
架构,我认为这应该是 /usr/lib64
。
我正在使用 64 位的自定义 Raspberry 映像。我也运行陷入这个问题。我正在使用 Raspios:https://downloads.raspberrypi.org/raspios_lite_arm64/images/
使用下一个映像,您可以在 PI 上安装 java 17。到目前为止 运行 Java jar 没有问题。