C/Visual C - Problema con enlace

 
Vista:

Problema con enlace

Publicado por LAHM (1 intervención) el 23/07/2008 21:42:23
Saludos:

Estoy haciendo una prueba de enlace de códigos hechos en TurboC y ensamblador. Ambos códigos por separado compilan bien, pero al enlazarlos me produce los errores siguientes:

Error: undefined symbol _printf in module secur.cpp
Error: undefined symbol _scanf in module secur.cpp
Error: undefined symbol _set_cur(int,int) in module secur.cpp

Quizá pasé por alto algún elemento en la sintaxis de mi código en C. Sé que lo más práctico es codificar la rutina de ensamblador dentro del código de Turbo C, pero quiero probar este método también.

Agradezco sus atenciones

Los códigos son los siguientes:

--------------------MI CODIGO EN TURBO C---------------
#include <stdio.h>

extern int _set_cur(int temp_row,int temp_col);

main (void)
{
int temp_row;int temp_col;

printf("Introduce renglon de cursor: ");
scanf("%d",&temp_row);

printf("Introduce columna de cursor: ");
scanf("%d",&temp_col);

_set_cur(temp_row, temp_col);

printf("Nueva posicion de cursor ");

}
-------------------MI CODIGO EN ENSAMBLADOR-------------------------------------------------------------------
_data segment word 'data'
row equ [bp+4]
col equ [bp+6]
_data ends
;------------------------------------------------------------------------------
_text segment byte public 'code'
dgroup group _data
assume cs:_text,ds:dgroup,ss:dgroup

public _set_curs
_set_curs proc near
push bp
mov bp,sp

mov ah,02h ;petición de posición de cursor
mov bx,0 ;pagina de video
mov dh,row ;columna
mov dl,col ;renglon
int 10h ;llama al BIOS

pop bp ;restaura bp
ret ;regresa a donde fué llamado
_set_curs endp
_text ends
end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con enlace

Publicado por m0skit0 (15 intervenciones) el 24/07/2008 11:08:53
_set_cur(temp_row, temp_col);

public _set_curs

Tienen nombres distintos. Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con enlace

Publicado por LAHM (1 intervención) el 24/07/2008 17:02:02
Gracias por responder!

Hice esa corrección, pero al enlazarlos con tlink me aparecen los mismos mensajes de error.

La verdad es que no logro determinar que puede ser. Por los errores que me marca yo creo que es el código en Turbo C

Utilizo las siguientes instrucciones para compilar en Turbo C:

C:TC cc -ml -c nombre.cpp
Me aparece un mensaje de advertencia diciendo que debería regresar un valor a main

-En ensamblador
C:TC asm /Zi /Ml _set_cur.asm
No hay problemas en el ensamblado

Y para Tlink

C:TC link nombre.obj _set_cur.obj

Error: undefined symbol _printf in module nombre.cpp
Error: undefined symbol _scanf in module nombre.cpp
Error: undefined symbol _set_cur(int,int) in module nombre.cpp

Que puedo hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con enlace

Publicado por m0skit0 (15 intervenciones) el 29/07/2008 14:26:37
Hace mil años que no toco TC, pero creo que tu sintaxis de enlazado le faltan más ficheros. Te faltan las librerías de printf y scanf; no las has enlazado. Pero no te sabría decir cuáles son.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar