gpt4 book ai didi

linux - 编译 aarch64 二进制 bash 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 10:05:03 25 4
gpt4 key购买 nike

我在 x86-64 机器上使用 shc 将 bash 脚本转换为可执行二进制文件。这在我的机器上运行良好,但我这样做是为了将它推送到 aarch64 机器上。将二进制文件复制到 aarch64 机器后,出现此错误:

无法执行二进制文件:执行格式错误

这似乎是由于二进制文件未被格式化以在该操作系统上运行所致。有谁知道一个工具可以给我一个可以在 aarch64 上执行的二进制文件(似乎 shc 不能这样做)。

编辑:文件命令打印出来(在 aarch 机器上):

ELF 64 位 LSB 可执行文件,x86-64,版本 1 (SYSV),动态链接,解释器/lib64/ld-linux-x86-64.so.2,适用于 GNU/Linux 2.6.32,BuildID[sha1 ]=f6f72e60c9ae8c2fd3abe5aa47f9ba6be7000be6, 剥离

只需确认该文件适用于 x86-46

最佳答案

简短的回答是在目标操作系统上编译二进制文件。从 man 页面:

shc itself is not a compiler such as cc, it rather encodes and encrypts a shell script and generates C source code with the added expiration capability. It then uses the system compiler to compile a stripped binary which behaves exactly like the original script.

编译产生一个包含机器代码的目标文件。机器代码“可以被视为已编译或汇编的计算机程序的最低级别表示,或者被视为原始的和硬件相关的编程语言”(引用 https://en.wikipedia.org/wiki/Machine_code)。在 SunOS 11.3 SPARCv4 上编译源代码生成的机器代码将不包含与在 AIX PowerPC8 上编译相同源代码生成的机器代码相同的指令。

关于linux - 编译 aarch64 二进制 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53175168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com