Compilar Harbour modo Consola 64bits

Compilar Harbour modo Consola 64bits

Postby jrestojeda » Fri May 24, 2024 7:34 pm

Hola buenas tardes a todos...

Quería probar de generar un ejecutable de 64 bits como para hacer pruebas. Quisiera comenzar con algo sencillo para ver primero si se puede...

Code: Select all  Expand view
Function main()

ALERT("Hola mundo")

Return nil


Tengo un sistema muy viejo que me gustaría intentar migrarlo a 64 bits con harbour.
Como punto de partida quisiera saber si alguien sabe como compilar en 64bits algo simple como el "Hola Mundo" como para comenzar.
Desde ya muchas gracias.
Saludos,
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
 
Posts: 601
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Compilar Harbour modo Consola 64bits

Postby Antonio Linares » Sat May 25, 2024 4:46 am

Estimado Esteban,

go64.bat
Code: Select all  Expand view
@setlocal
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
c:\harbour\bin\win\msvc64\hbmk2 hola.prg -comp=msvc64 -lucrt -ldflag=/NODEFAULTLIB:libucrt -ldflag=/NODEFAULTLIB:msvcrt
@endlocal
hola.exe

hola.prg
Code: Select all  Expand view
function Main()

   Alert( "Hola Mundo" )

return nil

Usa este Harbour 64 bits para Visual Studio Community 2022:
https://github.com/FiveTechSoft/harbour_and_xharbour_builds/blob/master/harbour_msvc2022_64_20240417.zip

Y descarga Visual Studio Community 2022 desde aqui: https://visualstudio.microsoft.com/es/vs/community/
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42097
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Compilar Harbour modo Consola 64bits

Postby jrestojeda » Wed May 29, 2024 1:00 pm

Estimado Antonio.
Muchas gracias por su respuesta.
Yo ya tenía instalado el Visual Studio 2019, para ganar tiempo probé compilar con ese 2019 y me funcionó perfecto.
Usted recomienda 2022 en su respuesta, es por algo en particular o solo porque es una versión más actual?
Consulto ya que como comenté antes, el 2019 ya lo tenía instalado y probé con ese y me funcionó.
Saludos,
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
 
Posts: 601
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Compilar Harbour modo Consola 64bits

Postby jrestojeda » Wed May 29, 2024 2:16 pm

Antonio,
Agrego otra consulta.
Al proyecto le agregué hbmysql.lib que viene el el harbour que me pasó para bajar.
Pero me falta libmysql.lib, esa de donde la obtengo o como la genero?
Podría orientarme un poco?
Desde ya muchas gracias.
Saludos,
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
 
Posts: 601
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Compilar Harbour modo Consola 64bits

Postby Antonio Linares » Thu May 30, 2024 4:14 am

Esteban,

Estamos organizando para incluirla también en el fichero de distribución de Harbour/xHarbour

Te aviso en cuanto esté listo
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42097
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Compilar Harbour modo Consola 64bits

Postby Antonio Linares » Thu May 30, 2024 9:09 am

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42097
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Compilar Harbour modo Consola 64bits

Postby Enrico Maria Giordano » Thu May 30, 2024 12:35 pm

Please try it and report back, thank you.
User avatar
Enrico Maria Giordano
 
Posts: 8713
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: Compilar Harbour modo Consola 64bits

Postby jrestojeda » Thu May 30, 2024 2:02 pm

Muchas gracias por la respuesta,
Al compilar me arroja lo siguiente:

Code: Select all  Expand view

C:\DEMO>C1

C:\DEMO>call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.7.0
** Copyright (c) 2020 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
hbmk2[DEMO64]: Warning: Non-portable parameter: 'LIB\hbmysql.lib' in
               DEMO64.HBP:4. Use '-LLIB -lhbmysql' option(s) instead.
hbmk2[DEMO64]: Warning: Non-portable parameter: 'LIB\libmysql.lib' in
               DEMO64.HBP:5. Use '-LLIB -llibmysql' option(s) instead.
Harbour 3.2.0dev (r2404101339)
Copyright (c) 1999-2021, https://harbour.github.io/
Compiling 'DEMO64.PRG'...
Lines 599, Functions/Procedures 1
Generating C source output to 'C:\Users\Esteban\AppData\Local\Temp\hbmk_as8fou.dir\DEMO64.c'... Done.
Compiling 'MYSQL.prg'...
Lines 41, Functions/Procedures 2
Generating C source output to 'C:\Users\Esteban\AppData\Local\Temp\hbmk_as8fou.dir\MYSQL.c'... Done.
DEMO64.c
MYSQL.c
Generando código...
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_num_rows sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_LIST_DBS
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_num_fields sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_FETCH_ROW
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_affected_rows sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_AFFECTED_ROWS
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_errno sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_ERRNO
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_error sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_ERROR
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_init sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_REAL_CONNECT
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_real_connect sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_REAL_CONNECT
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_select_db sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_SELECT_DB
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_store_result sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_STORE_RESULT
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_use_result sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_USE_RESULT
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_get_server_version sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_GET_SERVER_VERSION
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_free_result sin resolver al que se hace referencia en la funci¢n MYSQL_RES_release
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_fetch_row sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_FETCH_ROW
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_fetch_lengths sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_FETCH_ROW
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_real_escape_string sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_REAL_ESCAPE_STRING
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_close sin resolver al que se hace referencia en la funci¢n MYSQL_release
DEMO64.exe : fatal error LNK1120: 16 externos sin resolver
hbmk2[DEMO64]: Error: Running linker. 1120
link.exe @C:\Users\Esteban\AppData\Local\Temp\8bbhvu.lnk

hbmk2: Hint: Add option 'hbmysql.hbc' for missing function(s):
       mysql_real_escape_string(), mysql_get_server_version(),
       mysql_use_result(), mysql_store_result(), mysql_select_db(),
       mysql_real_connect(), mysql_error(), mysql_errno(),
       mysql_affected_rows(), mysql_fetch_row(), mysql_list_dbs()
Presione una tecla para continuar . . .
C:\DEMO>


Entiendo que me está faltando algo...
Alguna sugerencia?

Desde ya muchas gracias.
Saludos,
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
 
Posts: 601
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Compilar Harbour modo Consola 64bits

Postby Enrico Maria Giordano » Thu May 30, 2024 3:00 pm

jrestojeda wrote:
Code: Select all  Expand view
Harbour 3.2.0dev (r2404101339)


First thing to note. You are not using the latest Harbour build:

Code: Select all  Expand view
Harbour 3.2.0dev (r2405130039)


Second, try to link these libs:

Code: Select all  Expand view
hbmysql.lib
sddmy.lib


Let me know.
User avatar
Enrico Maria Giordano
 
Posts: 8713
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: Compilar Harbour modo Consola 64bits

Postby jrestojeda » Thu May 30, 2024 6:55 pm

Muchas gracias por la respuesta.

Paso a comentar:

Este es mi archivo DEMO64.hbp
Code: Select all  Expand view
DEMO64.PRG
MYSQL.prg

LIB\hbmysql.lib
LIB\sddmy.lib
LIB\libmysql.lib


Tengo un directorio con las 3 libs que se quieren enlazar en el proyecto.

Compilo de la siguiente manera:
Code: Select all  Expand view
@setlocal
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
c:\harbour64\bin\hbmk2 DEMO64.HBP -comp=msvc64 -lucrt -ldflag=/NODEFAULTLIB:libucrt -ldflag=/NODEFAULTLIB:msvcrt

@endlocal
pause


Tengo el harbour bajado y ubicado en C:\HARBOUR64

El resultado de compilar es el siguiente:
Code: Select all  Expand view
C:\DEMO>c1

C:\DEMO>call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.7.0
** Copyright (c) 2020 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
hbmk2[DEMO64]: Warning: Non-portable parameter: 'LIB\hbmysql.lib' in
               DEMO64.HBP:4. Use '-LLIB -lhbmysql' option(s) instead.
hbmk2[DEMO64]: Warning: Non-portable parameter: 'LIB\sddmy.lib' in
               DEMO64.HBP:5. Use '-LLIB -lsddmy' option(s) instead.
hbmk2[DEMO64]: Warning: Non-portable parameter: 'LIB\libmysql.lib' in
               DEMO64.HBP:6. Use '-LLIB -llibmysql' option(s) instead.
Harbour 3.2.0dev (r2405130039)
Copyright (c) 1999-2021, https://harbour.github.io/
Compiling 'DEMO64.PRG'...
Lines 599, Functions/Procedures 1
Generating C source output to 'C:\Users\Esteban\AppData\Local\Temp\hbmk_xjz47h.dir\DEMO64.c'... Done.
Compiling 'MYSQL.prg'...
Lines 153, Functions/Procedures 2
Generating C source output to 'C:\Users\Esteban\AppData\Local\Temp\hbmk_xjz47h.dir\MYSQL.c'... Done.
DEMO64.c
MYSQL.c
Generando código...
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_num_rows sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_LIST_DBS
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_num_fields sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_FETCH_ROW
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_affected_rows sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_AFFECTED_ROWS
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_errno sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_ERRNO
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_error sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_ERROR
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_init sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_REAL_CONNECT
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_real_connect sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_REAL_CONNECT
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_select_db sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_SELECT_DB
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_store_result sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_STORE_RESULT
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_use_result sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_USE_RESULT
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_get_server_version sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_GET_SERVER_VERSION
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_free_result sin resolver al que se hace referencia en la funci¢n MYSQL_RES_release
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_fetch_row sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_FETCH_ROW
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_fetch_lengths sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_FETCH_ROW
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_real_escape_string sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_REAL_ESCAPE_STRING
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_close sin resolver al que se hace referencia en la funci¢n MYSQL_release
DEMO64.exe : fatal error LNK1120: 16 externos sin resolver
hbmk2[DEMO64]: Error: Running linker. 1120
link.exe @C:\Users\Esteban\AppData\Local\Temp\fbv1ci.lnk

hbmk2: Hint: Add option 'hbmysql.hbc' for missing function(s):
       mysql_real_escape_string(), mysql_get_server_version(),
       mysql_use_result(), mysql_store_result(), mysql_select_db(),
       mysql_real_connect(), mysql_error(), mysql_errno(),
       mysql_affected_rows(), mysql_fetch_row(), mysql_list_dbs()
Presione una tecla para continuar . . .
C:\DEMO>


Quedo atento a alguna otra sugerencia.
Saludos,
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
 
Posts: 601
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Compilar Harbour modo Consola 64bits

Postby Enrico Maria Giordano » Thu May 30, 2024 7:16 pm

You should not use hbmk2.exe, it is a very bad and bugged tool. Please try with a simple batch. I cannot help you with hbmk2.exe.
User avatar
Enrico Maria Giordano
 
Posts: 8713
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: Compilar Harbour modo Consola 64bits

Postby Enrico Maria Giordano » Fri May 31, 2024 9:04 am

Anyway, It looks as you are not linking all the required libraries. Please check and let me know.
User avatar
Enrico Maria Giordano
 
Posts: 8713
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: Compilar Harbour modo Consola 64bits

Postby Antonio Linares » Fri May 31, 2024 1:06 pm

Esteban,

Tienes que enlazar fwh64\lib\libmariadb64.lib
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42097
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Compilar Harbour modo Consola 64bits

Postby Enrico Maria Giordano » Fri May 31, 2024 1:15 pm

What does it have to do with MySQL and Harbour? If that is the solution ok, I could not imagine it.
User avatar
Enrico Maria Giordano
 
Posts: 8713
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: Compilar Harbour modo Consola 64bits

Postby jrestojeda » Fri May 31, 2024 3:27 pm

Hola,

Estoy agregando las 3 libs que tomé del ultimo Harbour descargado:

Code: Select all  Expand view
hbmysql.lib
sddmy.lib
libmysql.lib


No logro entender que me estaría faltando para que me compile correctamente.

Saludos,
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
 
Posts: 601
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Next

Return to FiveWin para CA-Clipper

Who is online

Users browsing this forum: No registered users and 5 guests