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