对 WinMain@16 的未定义引用

pro*_*rog 6 nasm

segment .data

msg db "Enter your ID", 0xA, 0xD
len equ $ - msg

segment .bss

id resb 10

segment .text

global _start

_start:

    mov eax, 4
    mov ebx, 1
    mov ecx, msg
    mov edx, len
    int 0x80

    mov eax, 3
    mov ebx, 0
    mov ecx, id
    mov edx, 10
    int 0x80

    mov eax, 4
    mov ebx, 1
    int 0x80

_exit:

    mov eax, 1;
    xor ebx, ebx
    int 0x80

    ;End
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 gcc 在 c 中编译这个文件,但是程序给了我一个错误,我完全不知道问题出在哪里。和我的操作系统有关系吗?

Ant*_*nko 0

您的代码不应该使用标准 C 库,因此将其与 bareld而不是链接gcc会有所帮助(_start默认情况下是入口点,可以使用--entry选项指定其他入口点ld)。

但这没有帮助:这段代码不适用于 Windows 操作系统,而且您显然是为 Windows 编译它。