我试图从asm文件构建一个exe。asm文件如下所示:
global main
extern puts
section .data
msg:
db "Hello, world!",10,0
section .text
main:
sub rsp, 28h
mov rcx, msg
call puts
add rsp, 28h
ret
然后我使用NASM组装它,并尝试使用GCC将其连接起来。但它显示了这个错误。
> nasm -fwin64 asmtest.asm
> gcc asmtest.obj
asmtest.obj: file not recognized: File format not recognized
collect2.exe: error: ld returned 1 exit status
我不知道发生了什么。我的NASM版本2.14.02
和GCC版本8.1.0
。我已经遵循了这个教程(在底部(。我在我的Windows 10 64位计算机上执行此操作。
我也看到过这个问题,但对我没有帮助
您已经为32位二进制文件安装了mingw。您需要安装一个配置为生成64位二进制文件的mingw版本来编译和/或链接64位二进制程序。