ld не находит kernel32

Начал изучать NASM и решил написать программу, что выводит в консоль Hello, world!

extern WriteFile
extern GetStdHandle

global _start

section .data
    message: db "Hello, world!",10

section .text
_start:
    sub rsp, 40
    mov rcx, -11
    call GetStdHandle
    mov rcx, rax
    mov rdx, message
    mov r8d, 18
    xor r9, r9
    mov qword [rsp + 32], 0
    call WriteFile
    add rsp, 40
    ret

суть в том, что объектный файл programm.o не линкуется c использованием данной команды

ld programm.o -o programm.exe -l kernel32

и выдаёт ошибку

ld: cannot find -lkernel32: No such file or directory

Собственно, как мне это исправить и получить рабочий exe файл?

Редактировано от 09.04.24:

При изменении команды до

ld programm.o -o programm.exe -L C:/Windows/System32 -l kernel32

на моём компьютере всё сработало, однако, при использовании этой же команды на другом компьютере выводится ошибка

skipping incompatible C:/Windows/System32/kernel32.dll when searching -lkernel32
skipping incompatible C:/Windows/System32/kernel32.dll when searching -lkernel32
cannot find -lkernel32
skipping incompatible C:/Windows/System32/kernel32.dll when searching -lkernel32

Ответы (0 шт):