Tengo un programa muy simple que llama a ExitProcess de win32
pero al ligarlo con ld me tira este error "xim.obj:xim.asm:(.code+0x3): undefined reference to `ExitProcess@4´"
El codigo :
;xim.asm
global _start
extern _GetStdHandle@4
extern _ExitProcess@4
[section .code use32]
_start :
push dword 0
call _ExitProcess@4
Para compilarlo :
nasm -f win32 xim.asm
ld xim.obj -e _start -o xim.exe
Alguien sabe que puedo hacer para resolverlo?
ExitProcess es una funcion de la libreria Kernel32.dll, necesitas la libreria de importacion (Kernel32.lib) para que el enlazador pueda resolver el simbolo (ExitProcess@4).
Gracias lo he solucionado instalando Windows SDK hay esta la biblioteca kernel32.Lib
al ligar solo agrego el directorio de la biblioteca
ld -e _start xim.obj -kernel32 -L"C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib" -o xim.exe
De nadas ::)