gpt4 book ai didi

linux - 无法执行二进制文件 : Exec format error after compiling Linux kernel

转载 作者:太空宇宙 更新时间:2023-11-04 12:02:08 26 4
gpt4 key购买 nike

我是一名 Linux 新用户,对一个问题感到困惑。编译 Linux 内核后,我尝试运行输出文件(例如 net/ipv4/ping.o 中的 ./ping.o)。然而,终端的输出说

bash: ./ping.o: cannot execute binary file: Exec format error

在那之后,我用了

file ping.o

输出是

ping.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), with debug_info, not stripped

而且我的电脑和文件是一样的架构,都是x86_64

uname -m

x86_64

谁能帮我解决这个问题,或者给我一个提示?如果我能找到原因,我会很高兴。非常感谢。

最佳答案

这里有多个问题:

  • Linux 内核不应该从 Linux 命令行运行。它应该从特权模式运行以启动操作系统。

  • .o 文件是所谓的目标文件。它们包含编译代码和对其他符号(其他代码)的引用,但不包含引用代码本身。这意味着您不能运行目标文件,因为它只是拼图的一部分。首先,您需要将所有目标文件链接在一起。这当然是在构建 Linux 时完成的,结果前段时间被称为 vmlinuz,可能他们又重新命名了。

  • 即使您要链接 ping.o,它也可能缺少入口点(main() 函数)。有一些代码,但不知道如何运行它以及将什么作为输入传递。 main 函数提供了所有这些。

如果您详细说明为什么您正在做您正在做的事情,我可能会为您提供更多帮助。

关于linux - 无法执行二进制文件 : Exec format error after compiling Linux kernel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51988943/

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