Test Foro de elhacker.net SMF 2.1

Programación => Programación General => ASM => Mensaje iniciado por: Token32 en 10 Octubre 2013, 06:24 AM

Título: Problema al ligar (SOLUCIONADO)
Publicado por: Token32 en 10 Octubre 2013, 06:24 AM
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?
Título: Re: Problema al ligar
Publicado por: Eternal Idol en 10 Octubre 2013, 09:08 AM
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).
Título: Re: Problema al ligar (SOLUCIONADO)
Publicado por: Token32 en 12 Octubre 2013, 20:35 PM
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
Título: Re: Problema al ligar (SOLUCIONADO)
Publicado por: Eternal Idol en 12 Octubre 2013, 21:04 PM
De nadas  ::)