Page 1 of 1

Consulta al enlazar modo consola

PostPosted: Sun Sep 05, 2021 10:39 pm
by jrestojeda
Hola a todos,
Tengo una duda conceptual.
Si enlazo mis fuentes para generar mi ejecutable de la siguiente manera se genera correctamente:

Archivo DEMO.hbp
Code: Select all  Expand view
DEMO32.PRG
MENSAJES.prg
MENSAJEC.C
CONEXION.prg

VARIOS\F001.PRG VARIOS\F002.PRG VARIOS\F003.PRG VARIOS\F004.PRG VARIOS\F006.PRG VARIOS\F007.PRG
VARIOS\F008.PRG VARIOS\F009.PRG VARIOS\F010.PRG VARIOS\F011.PRG VARIOS\F012.PRG VARIOS\F013.PRG
VARIOS\F014.PRG VARIOS\F015.PRG VARIOS\F016.PRG VARIOS\F017.PRG VARIOS\F018.PRG VARIOS\F019.PRG
VARIOS\F020.PRG VARIOS\F022.PRG VARIOS\F023.PRG VARIOS\F031.PRG VARIOS\F033.PRG VARIOS\F034.PRG
VARIOS\F038.PRG VARIOS\F039.PRG VARIOS\F040.PRG VARIOS\F041.PRG VARIOS\F043.PRG VARIOS\F044.PRG
VARIOS\F045.PRG VARIOS\F046.PRG VARIOS\F047.PRG VARIOS\F048.PRG VARIOS\F050.PRG VARIOS\F051.PRG
VARIOS\F053.PRG VARIOS\F055.PRG VARIOS\F057.PRG VARIOS\F058.PRG VARIOS\F060.PRG VARIOS\F061.PRG
VARIOS\F062.PRG VARIOS\F066.PRG VARIOS\F067.PRG VARIOS\F068.PRG VARIOS\F070.PRG VARIOS\F073.PRG
VARIOS\F074.PRG VARIOS\F075.PRG VARIOS\F076.PRG VARIOS\F078.PRG VARIOS\F080.PRG VARIOS\F081.PRG
VARIOS\F090.PRG VARIOS\F099.PRG VARIOS\F102.PRG VARIOS\F103.PRG VARIOS\F667.PRG VARIOS\F999.PRG

VARIOS\N001.PRG VARIOS\N002.PRG VARIOS\N003.PRG VARIOS\N004.PRG VARIOS\N005.PRG VARIOS\N006.PRG
VARIOS\N007.PRG VARIOS\N008.PRG VARIOS\N009.PRG VARIOS\N010.PRG VARIOS\N011.PRG VARIOS\N012.PRG
VARIOS\N444.PRG

LIBS=Y:\DEMO32\PRG\LIB\libmysql.lib
LIBS=Y:\DEMO32\PRG\LIB\hbmysql.lib


Archivo para generar el .exe:
Code: Select all  Expand view
D:\HARBOUR\hb30\bin\hbmk2.exe DEMO32.hbp > Compilar.LOG
CALL COMPILAR.LOG
PAUSE

Si armo todo de esta manera se genera el .exe correctamente y funciona.

Ahora bien, si quiero generar el .exe de la siguiente manera me faltan todas las funciones que estan en hbmysql.lib

Code: Select all  Expand view
c:\bcc55\lib\c0w32.obj +
Y:\DEMO32\PRG\OBJ\DEMO32.obj Y:\DEMO32\PRG\OBJ\f001.obj     Y:\DEMO32\PRG\OBJ\f002.obj     Y:\DEMO32\PRG\OBJ\f003.obj     +
Y:\DEMO32\PRG\OBJ\f004.obj   Y:\DEMO32\PRG\OBJ\f006.obj     Y:\DEMO32\PRG\OBJ\f007.obj     Y:\DEMO32\PRG\OBJ\f008.obj     +
Y:\DEMO32\PRG\OBJ\f009.obj   Y:\DEMO32\PRG\OBJ\f010.obj     Y:\DEMO32\PRG\OBJ\f011.obj     Y:\DEMO32\PRG\OBJ\f012.obj     +
Y:\DEMO32\PRG\OBJ\f013.obj   Y:\DEMO32\PRG\OBJ\f014.obj     Y:\DEMO32\PRG\OBJ\f015.obj     Y:\DEMO32\PRG\OBJ\f016.obj     +
Y:\DEMO32\PRG\OBJ\f017.obj   Y:\DEMO32\PRG\OBJ\f018.obj     Y:\DEMO32\PRG\OBJ\f019.obj     Y:\DEMO32\PRG\OBJ\f020.obj     +
Y:\DEMO32\PRG\OBJ\f022.obj   Y:\DEMO32\PRG\OBJ\f023.obj     Y:\DEMO32\PRG\OBJ\f031.obj     Y:\DEMO32\PRG\OBJ\f033.obj     +
Y:\DEMO32\PRG\OBJ\f034.obj   Y:\DEMO32\PRG\OBJ\f038.obj     Y:\DEMO32\PRG\OBJ\f039.obj     Y:\DEMO32\PRG\OBJ\f040.obj     +
Y:\DEMO32\PRG\OBJ\f041.obj   Y:\DEMO32\PRG\OBJ\f043.obj     Y:\DEMO32\PRG\OBJ\f044.obj     Y:\DEMO32\PRG\OBJ\f045.obj     +
Y:\DEMO32\PRG\OBJ\f046.obj   Y:\DEMO32\PRG\OBJ\f047.obj     Y:\DEMO32\PRG\OBJ\f048.obj     Y:\DEMO32\PRG\OBJ\f050.obj     +
Y:\DEMO32\PRG\OBJ\f051.obj   Y:\DEMO32\PRG\OBJ\f053.obj     Y:\DEMO32\PRG\OBJ\f055.obj     Y:\DEMO32\PRG\OBJ\f057.obj     +
Y:\DEMO32\PRG\OBJ\f058.obj   Y:\DEMO32\PRG\OBJ\f060.obj     Y:\DEMO32\PRG\OBJ\f061.obj     Y:\DEMO32\PRG\OBJ\f062.obj     +
Y:\DEMO32\PRG\OBJ\f066.obj   Y:\DEMO32\PRG\OBJ\f067.obj     Y:\DEMO32\PRG\OBJ\f068.obj     Y:\DEMO32\PRG\OBJ\f070.obj     +
Y:\DEMO32\PRG\OBJ\f073.obj   Y:\DEMO32\PRG\OBJ\f074.obj     Y:\DEMO32\PRG\OBJ\f075.obj     Y:\DEMO32\PRG\OBJ\f076.obj     +
Y:\DEMO32\PRG\OBJ\f078.obj   Y:\DEMO32\PRG\OBJ\f080.obj     Y:\DEMO32\PRG\OBJ\f081.obj     Y:\DEMO32\PRG\OBJ\f090.obj     +
Y:\DEMO32\PRG\OBJ\f099.obj   Y:\DEMO32\PRG\OBJ\f102.obj     Y:\DEMO32\PRG\OBJ\f103.obj     Y:\DEMO32\PRG\OBJ\f667.obj     +
Y:\DEMO32\PRG\OBJ\f999.obj   Y:\DEMO32\PRG\OBJ\mensajec.obj Y:\DEMO32\PRG\OBJ\mensajes.obj Y:\DEMO32\PRG\OBJ\CONEXION.obj +
Y:\DEMO32\PRG\OBJ\n001.obj   Y:\DEMO32\PRG\OBJ\n002.obj     Y:\DEMO32\PRG\OBJ\n003.obj     Y:\DEMO32\PRG\OBJ\n004.obj     +
Y:\DEMO32\PRG\OBJ\n005.obj   Y:\DEMO32\PRG\OBJ\n006.obj     Y:\DEMO32\PRG\OBJ\n007.obj     Y:\DEMO32\PRG\OBJ\n008.obj     +
Y:\DEMO32\PRG\OBJ\n009.obj   Y:\DEMO32\PRG\OBJ\n010.obj     Y:\DEMO32\PRG\OBJ\n011.obj     Y:\DEMO32\PRG\OBJ\n012.obj     +
Y:\DEMO32\PRG\OBJ\n444.obj    ,+
DEMO32.EXE ,+
DEMO32.MAP ,+
D:\HARBOUR\hb30\LIB\hblang.lib   +
D:\HARBOUR\hb30\LIB\hbvm.lib     +
D:\HARBOUR\hb30\LIB\hbrtl.lib    +
D:\HARBOUR\hb30\LIB\hbrdd.lib    +
D:\HARBOUR\hb30\LIB\hbmacro.lib  +
D:\HARBOUR\hb30\LIB\rddntx.lib   +
D:\HARBOUR\hb30\LIB\rddcdx.lib   +
D:\HARBOUR\hb30\LIB\rddfpt.lib   +
D:\HARBOUR\hb30\LIB\hbcommon.lib +
D:\HARBOUR\hb30\LIB\gtwin.lib    +
D:\HARBOUR\hb30\LIB\hbcpage.lib  +
D:\HARBOUR\hb30\LIB\hbct.lib     +
D:\HARBOUR\hb30\LIB\hbtip.lib    +
D:\HARBOUR\hb30\LIB\hbpcre.lib   +
D:\HARBOUR\hb30\LIB\hbhsx.lib    +
D:\HARBOUR\hb30\LIB\hbsix.lib    +
D:\HARBOUR\hb30\LIB\hbdebug.lib  +
D:\HARBOUR\hb30\LIB\hbhpdf.lib   +
D:\HARBOUR\hb30\LIB\png.lib      +
D:\HARBOUR\hb30\LIB\hbzlib.lib   +
D:\HARBOUR\hb30\LIB\xhb.lib      +
D:\HARBOUR\hb30\LIB\hbcplr.lib   +
D:\HARBOUR\hb30\LIB\hbwin.lib    +
D:\HARBOUR\hb30\LIB\gtgui.lib    +
Y:\DEMO32\PRG\LIB\libmysql.lib   +
Y:\DEMO32\PRG\LIB\hbmysql.lib    +
C:\BCC55\lib\cw32.lib            +
C:\BCC55\lib\import32.lib        +
C:\BCC55\lib\psdk\odbc32.lib     +
C:\BCC55\lib\psdk\nddeapi.lib    +
C:\BCC55\lib\psdk\iphlpapi.lib   +
C:\BCC55\lib\psdk\msimg32.lib    +
C:\BCC55\lib\psdk\rasapi32.lib   +
C:\BCC55\lib\psdk\psapi.lib      +
 


Las funciones en teoria estan en hbmysql.lib, la cual estoy agregando en el archivo l.bc
Sin embargo me da los siguientes errores:
Code: Select all  Expand view
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external 'mysql_init' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_real_connect' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_close' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_get_server_version' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_commit' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_rollback' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_select_db' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_query' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_store_result' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_use_result' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_fetch_lengths' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_data_seek' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_fetch_field' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_field_seek' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_num_fields' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_field_count' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_list_fields' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_errno' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_error' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_list_dbs' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_list_tables' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_num_rows' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_fetch_row' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_free_result' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_affected_rows' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_get_host_info' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_get_server_info' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_insert_id' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_ping' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_real_escape_string' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql
Error: Unresolved external 'mysql_escape_string' referenced from Y:\DEMO32\PRG\LIB\HBMYSQL.LIB|mysql


Qué puede ser que este fallando que no me tome la hbmysql.lib?
Cualquier ayuda es bienvenida.
Desde ya muchas gracias.

Re: Consulta al enlazar modo consola

PostPosted: Mon Sep 06, 2021 4:57 am
by Antonio Linares
Necesitas crear una librería de importacion (.LIB) a partir de mysql.dll y enlazarla también:

implib.exe mysql.lib mysql.dll

Re: Consulta al enlazar modo consola

PostPosted: Mon Sep 06, 2021 1:11 pm
by jrestojeda
Antonio,
Muchas gracias por tu respuesta.

Mi duda es porque si genero el .exe con hbmk2 funciona y si lo generon con el otro .bat no.
En ambos casos estoy apuntando a la misma "hbmysql.lib" donde están las funciones.

¿Qué puede estár cambiando?

Re: Consulta al enlazar modo consola

PostPosted: Mon Sep 06, 2021 3:41 pm
by Antonio Linares
Esteban,

hbmk2 genera automaticamente la libreria de importación y luego la borra

hbmk2 es una gran herramienta

Re: Consulta al enlazar modo consola

PostPosted: Mon Sep 06, 2021 3:57 pm
by jrestojeda
Ahhh, entiendo.
Ahora lo que no se entonces... Es de donde toma mysql.dll para generar la lib.
Podría orientarme de donde debo tomarla para generar mi lib.
Desde ya muchas gracias.

Re: Consulta al enlazar modo consola

PostPosted: Mon Sep 06, 2021 4:55 pm
by Antonio Linares
Si revisas c:\harbour\contrib\hbmysql\hbmysql.hbc y c:\harbour\contrib\hbmysql\hbmysql.hbp verás de donde se toma

Los dos son ficheros de texto que puedes abrir con tu editor ó el notepad, etc. y los vas a entender :-)

Re: Consulta al enlazar modo consola

PostPosted: Tue Sep 07, 2021 3:33 pm
by jrestojeda
Muchas gracias Antonio.
Voy a ver esos archivos que me dices.