helloWorld.o:文件无法识别:文件格式无法识别(在 Windows 上交叉组装 Linux 可执行文件)

问题描述 投票:0回答:1

我组装了一个名为“helloWorld.s”的程序集文件并将其保存到“helloWorld.o”中,然后我尝试链接它,但它给了我这个错误“helloWorld.o:文件无法识别:文件格式无法识别”,我想知道这是为什么吗?

我使用了 NASM 汇编器。

这是我写的命令:

C:\>nasm -f elf64 helloWorld.s

C:\>ld -o helloWorld helloWorld.o
helloWorld.o: file not recognized: File format not recognized

注:

Linux 操作系统的可执行文件,但我只是想在 Windows 操作系统上组装它并链接它,然后将传输它。

linux assembly x86 nasm cross-compiling
1个回答
0
投票

使用 ld 链接器在 Windows 上创建 Linux 可执行文件并不是一个简单的过程,因为 Windows 上的 ld 通常会生成 Windows 兼容的可执行文件(PE 格式),而不是 Linux 兼容的可执行文件(ELF 格式)。但是,您可以在 Windows 上使用交叉编译器工具链来实现您的目标。

© www.soinside.com 2019 - 2024. All rights reserved.