Problema al ligar (SOLUCIONADO)

Iniciado por Token32, 10 Octubre 2013, 06:24 AM

0 Miembros y 1 Visitante están viendo este tema.

Token32

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?

Eternal Idol

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).
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Token32

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

Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón