我是一个新的Linux用户,对一个问题感到困惑。编译Linux内核后,我尝试运行输出文件(例如,net/ipv4 4/ping.o中的./ping.o)。然而,终端的输出显示
bash:./ping.o:无法执行二进制文件: Exec格式错误
在那之后,我用
文件ping.o
输出是
ping.o:精灵64位LSB可重新定位,x86-64,第1版( debug_info ),没有剥离
我的计算机是与文件相同的架构,即x86_64。
不名-m x86_64
有人能帮我回答这个问题吗,或者给我个提示?如果我能找到原因,我会很高兴的。非常感谢。
发布于 2018-08-23 15:16:18
这里有许多问题:
object files.它们包含编译后的代码和对其他符号(其他代码)的引用,但不包含引用的代码本身。这意味着您不能运行对象文件,因为它只是拼图的一部分。首先,您需要将所有对象文件链接到一起。当然,这是在构建Linux的过程中完成的,结果在一段时间前被称为vmlinuz,也许他们将它重命名了一次。main()函数)。有一些代码,但不知道如何运行它,也不知道作为输入应该传递什么。main函数提供了所有这些。如果你详细说明你为什么要做你正在做的事情,我也许能帮你更多的忙。
https://stackoverflow.com/questions/51988943
复制相似问题