我尝试使用MinGW-w64在Windows上编译汇编代码。我试图编译的测试代码是(我确定这段代码非常糟糕,但问题在于链接器,而不是实际的代码):
.intel_syntax noprefix
.text
.globl _start
_start:
push rbp
mov rbp, rsp
and rsp, -64
sub rsp, 64
mov rax, 0
leave
push 0
call _ExitProcess@4
我用于编译的命令是:
gcc -nostdlib simpletest.s -o out.exe
如果我在命令的末尾添加-kernel32
,结果并不重要。
无论我尝试什么,我都会收到以下错误:
Undefined reference to '_ExitProcess@4'
我应该补充说,相同的gcc完全能够将C代码编译为汇编,然后将汇编代码编译为exe。