我组装了一个名为“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 操作系统上组装它并链接它,然后将传输它。
使用 ld 链接器在 Windows 上创建 Linux 可执行文件并不是一个简单的过程,因为 Windows 上的 ld 通常会生成 Windows 兼容的可执行文件(PE 格式),而不是 Linux 兼容的可执行文件(ELF 格式)。但是,您可以在 Windows 上使用交叉编译器工具链来实现您的目标。