我想玩一下组装游戏。首先,我创建了一个小asm脚本并尝试编译它。在第一步,一切都很顺利:
nasm -felf64 hello.asm
但当我试图用
ld -o hello.o你好
从MinGW中发生了一个错误:
O:文件不可识别:文件格式不可识别
我能做些什么来解决这个问题?我也和gcc试过了,但是同样的错误加上另一个错误发生了。
发布于 2022-03-02 07:08:50
MinGW创建针对Windows的二进制文件。Windows不支持ELF二进制文件(或者是吗?)使用Windows子系统实现Linux?)。无论如何,ld
在MinGW中将期望您提供win64
格式的二进制文件,而不是elf64
。
nasm -fwin64 hello.asm
很可能会起作用。
不,它不能工作,因为我刚刚看到了您的代码,您正在Windows下使用Linux系统。
写,
mov rcx, 69
call ExitProcess
而不是,
mov rax, SYS_EXIT
mov rdi, 69
syscall
如果它不起作用,请留下评论。
https://stackoverflow.com/questions/71314374
复制相似问题