Sva*_*sky 6 arm debian executable x86 chrome-book
我正在尝试将 Navicat 这是一个 x86-64 二进制文件安装到我的 aarch64 机器上,这导致“无法执行二进制文件:Exec 格式错误”
这是file在可执行文件上运行的结果:
navicatess15-sqlserver-en.AppImage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.18, BuildID[sha1]=d629f6099d2344ad82818172add1d38c5e11bc6d, stripped
这是我的uname -a:
Linux penguin 4.19.98-08076-g24ab33fb8e14 #1 SMP PREEMPT Wed Apr 1 17:17:36 PDT 2020 aarch64 GNU/Linux
有什么办法可以在我的机器上运行这个可执行文件吗?
(Idk 如果这有什么不同,但我在带 OP1 处理器的三星 Chromebook Plus 上运行 Linux)
小智 7
Debian 具有多架构支持,这意味着您可以在其他架构上安装和运行为一种架构构建的程序。
但是,您需要考虑以下因素:
由于 x86 架构与 ARM 有很大不同,因此这将通过仿真(通常通过)来完成,qemu-user因此可能会损失一些速度和功能。
这需要binfmt支持。如果您在 Chromebook 上使用“Linux 容器”(crostinit),则如本文所述,不会启用此支持。
在 Chromebook 上,此时binfmt需要支持。在这种情况下,它的效果与预期的一样好。crouton
如果您想测试此运行以下命令:
A。安装支持该架构所需的二进制文件。
sudo apt-get install binfmt-support qemu-user-static
sudo update-binfmts --display
Run Code Online (Sandbox Code Playgroud)
b. 设置 Debian 以支持多架构。
sudo dpkg --add-architecture amd64
sudo apt-get update
sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)
C。测试一下。(假设您尚未安装该hello架构的软件包aarch64。)
sudo apt-get install hello:amd64
hello
Run Code Online (Sandbox Code Playgroud)
这将打印熟悉的“Hello, World!” 使用二进制消息amd64。
每种架构都使用自己的硬件语言,因此当然 ARM CPU 只能在本地运行 ARM 二进制文件。如果要为其他架构运行二进制文件,则需要使用模拟器。最著名的 x86-64 模拟器是qemu和bochs
但是仿真非常慢,所以它不适合时间敏感的应用程序,应该是最后的手段。如果可用,您最好从源代码重新编译,或者找到 ARM 替代软件
| 归档时间: |
|
| 查看次数: |
15835 次 |
| 最近记录: |