FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Compilar con hmbk2 es complicado, pero...
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Compilar con hmbk2 es complicado, pero...
Posted: Fri Sep 13, 2024 10:31 PM
Fue solucionado con la ayuda de todos, muchas gracias por todo :D :D :D :D

Buenas tardes para todos he intentado hacer la compilación por lo menos de un prg, para iniciar con la migración de 64bits, e intentado por todos los medios, por ultimo me decante por hacerlo con hbmk2, como nos indico Antonio en el curso, lo quiero hacer con las siguientes herramientas para intentar encontrar la menor oposición posible, pero es realmente desgastante.

Ya descargue el borland y lo copie en la carpeta:
c:\bcc770_64

Tambien el XHARBOUR en la carpeta:
c:\xHar2407_64

El FW en la carpeta
c:\fwh64_2407

Cree una carpeta para colocar el GO y los otros archivos del hbmk2 llamada
c:\cmplar_64

Dentro de esa carpeta colocamos otra carpeta con el contenido de los archivos del proyecto
c:\cmplar_64\hbmk2_bcc64
Como se muestra en la siguiente imagen


Ahora creemos que nos hace falta hmk2.exe, descargamos la distribución de harbour desde gtihub para copiar el ejecutable, pero nada error en el archivo zip, saben a que se debe ese error?



Después de que pueda descargar el hbmk2.exe quisiera comprobar si esta misma configuración nos sirve para compilar con XHARBOUR, en las rutas comentadas, por que no veo en donde configuramos las rutas para XHARBOUR en el archivo hbp

Borland 64 bits
go64.bat
Code (fw): Select all Collapse
set bcc=c:\bcc770_64
set path=c:\%bcc%\bin
set HB_USER_CFLAGS=-Ic:\%bcc%\INCLUDE\windows\crtl -Ic:\%bcc%\INCLUDE\windows\sdk -Lc:\%bcc%\LIB
set HB_USER_LDFLAGS=-Lc:\%bcc%\LIB;c:\%bcc%\LIB\psdk
c:\harbour\bin\win\bcc64\hbmk2.exe test.hbp -comp=bcc64
test.hbp
Code (fw): Select all Collapse
-gui

test.prg

#-info
#-traceonly
-workdir=

-optim-
-ldflag+=-aa
-Ic:\fwh64_2407\include
-Lc:\fwh64_2407\lib

-lfive64
-lfivec64

hbct.hbc
xhb.hbc
hbziparc.hbc
Gracias de antemano
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Compilar con hmbk2 es realmente frustrante
Posted: Sat Sep 14, 2024 01:46 AM

Otra alternativa es usar el .bat con .mak , funciona muy bien

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Compilar con hmbk2 es realmente frustrante
Posted: Sat Sep 14, 2024 05:06 AM
Soporte de xHarbour para hbmk2

1. copiar hbmk2.exe a c:\xharbour64\bin

go64.bat (flag -xhb al llamar a hbmk2.exe)
Code (fw): Select all Collapse
set bcc=bcc7764
set path=c:\%bcc%\bin
set HB_USER_CFLAGS=-Ic:\%bcc%\INCLUDE\windows\crtl -Ic:\%bcc%\INCLUDE\windows\sdk -Lc:\%bcc%\LIB
set HB_USER_LDFLAGS=-Lc:\%bcc%\LIB;c:\%bcc%\LIB\psdk
c:\xharbour64\bin\hbmk2.exe test.hbp -comp=bcc64 -xhb
busca la libreria cw64.lib, todas las demas las usa como *.a

Solución:
En c:\bcc7764\lib hacer:
copy cw64.a cw64.lib

Las librerias de FWH64 para xHarbour64 a especificar en el fichero HBP son estas:

-lFivehx64
-lFiveC64
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: Compilar con hmbk2 es realmente frustrante
Posted: Sat Sep 14, 2024 04:50 PM
Antonio buenas tardes, gracias por responder

Seguí tu instrucciones y bueno ya tenemos un avance, ahora esta devolviendo estos errores:
Code (fw): Select all Collapse
C:\cmplar_64>go64

C:\cmplar_64>set bcc=bcc770_64

C:\cmplar_64>set path=c:\bcc770_64\bin

C:\cmplar_64>set HB_USER_CFLAGS=-Ic:\bcc770_64\INCLUDE\windows\crtl -Ic:\bcc770_64\INCLUDE\windows\sdk -Lc:\bcc770_64\LIB

C:\cmplar_64>set HB_USER_LDFLAGS=-Lc:\bcc770_64\LIB;c:\bcc770_64\LIB\psdk

C:\cmplar_64>C:\xHar2407_64\bin\hbmk2.exe test.hbp -comp=bcc64 -xhb
hbmk2[test]: Warning: Cannot find hbct.hbc (referenced from test.hbp)
hbmk2[test]: Warning: Cannot find xhb.hbc (referenced from test.hbp)
hbmk2[test]: Warning: Cannot find hbziparc.hbc (referenced from test.hbp)
xHarbour 1.3.1 Intl. (SimpLex) (Build 20240624)
Copyright 1999-2024, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'test.prg'...
Generating C source output to 'C:\Users\leandro\AppData\Local\Temp\59\hbmk_cp8rxs.dir\test.c'...
Done.
Lines 9, Functions/Procedures 1, pCodes 18
bcc64.exe: warning: argument unused during compilation: '-Lc:\bcc770_64\LIB' [-Wunused-command-line-argument]
C:\Users\leandro\AppData\Local\Temp\59\hbmk_cp8rxs.dir\test.c:
Turbo Incremental Link64 6.98 Copyright (c) 1997-2023 Embarcadero Technologies, Inc.
Error: Unresolved external 'HB_FUN_CHARONLY' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|vstrfun1.obj
Error: Unresolved external 'HB_FUN_CHARREM' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|vstrfun1.obj
Error: Unresolved external 'HB_FUN_NUMAT' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|menuitem.obj
Error: Unresolved external 'HB_FUN_CHARREPL' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|btnbmp.obj
Error: Unresolved external 'HB_FUN_BEFORATNUM' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|btnbmp.obj
Error: Unresolved external 'HB_FUN_AFTERATNUM' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|btnbmp.obj
Error: Unresolved external 'HB_FUN_EXENAME' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|callstac.obj
Error: Unresolved external 'HB_FUN_TOKEN' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|dbffunc1.obj
Error: Unresolved external 'HB_FUN_TRUENAME' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|adofuncs.obj
Error: Unresolved external 'HB_FUN_OCCURS' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|tarrdata.obj
Error: Unresolved external 'HB_FUN_CHARONE' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|datarow.obj
Error: Unresolved external 'HB_FUN_ADDMONTH' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|tget.obj
Error: Unresolved external 'HB_FUN_TIMEVALID' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|tget.obj
Error: Unresolved external 'HB_FUN_PADRIGHT' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|tget.obj
Error: Unresolved external 'HB_FUN_ATTOKEN' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|pgsuport.obj
Error: Unresolved external 'HB_FUN_HB_GETFILESINZIP' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|olefuncs.obj
Error: Unresolved external 'HB_FUN_HB_UNZIPFILE' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|olefuncs.obj
Error: Unresolved external 'HB_FUN_REMRIGHT' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|drxl.obj
Error: Unresolved external 'HB_FUN_CEILING' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|datarow.obj
Error: Unresolved external 'HB_FUN_BLANK' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|dbcombo.obj
Error: Unresolved external 'HB_FUN_REMALL' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|adofuncs.obj
Error: Unresolved external 'HB_FUN_RANGEREPL' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|adofuncs.obj
Error: Unresolved external 'HB_FUN_REMLEFT' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|adofuncs.obj
Error: Unresolved external 'HB_FUN_POSCHAR' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|xbrowse.obj
Error: Unresolved external 'HB_FUN_PI' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|imgtxtio.obj
Error: Unresolved external 'HB_FUN_SIN' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|imgtxtio.obj
Error: Unresolved external 'HB_FUN_COS' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|imgtxtio.obj
Error: Unresolved external 'HB_FUN_ASCPOS' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|imgtxtio.obj
Error: Unresolved external 'HB_FUN_HB_BASE64DECODE' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|imgtxtio.obj
Error: Unresolved external 'HB_FUN_DTOR' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|imgtxtio.obj
Error: Unresolved external 'HB_FUN_TOKENUPPER' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|valtostr.obj
Error: Unresolved external 'HB_FUN_LOG10' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|valtostr.obj
Error: Unresolved external 'HB_FUN_FLOOR' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|valtostr.obj
Error: Unresolved external 'HB_FUN_NTOCMONTH' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|valtostr.obj
Error: Unresolved external 'HB_FUN_HB_BASE64ENCODE' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|imageb64.obj
Error: Unresolved external 'HB_FUN_POSREPL' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|valtostr.obj
Error: Unresolved external 'HB_FUN_EOM' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|valtostr.obj
Error: Unresolved external 'HB_FUN_TIMETOSEC' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|valtostr.obj
Error: Unresolved external 'HB_FUN_SECTOTIME' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|valtostr.obj
Error: Unresolved external 'HB_FUN_ISLEAP' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|valtostr.obj
Error: Unresolved external 'HB_FUN_CHARMIRR' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|valtostr.obj
Error: Unresolved external 'HB_FUN_CHARSWAP' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|valtostr.obj
Error: Unresolved external 'HB_FUN_NUMTOKEN' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|vstrfun1.obj
Error: Unresolved external 'HB_FUN_DRIVETYPE' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|filename.obj
Error: Unresolved external 'HB_FUN_NETRMTNAME' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|filename.obj
Error: Unresolved external 'HB_FUN_SETFATTR' referenced from C:\FWH64_2407\LIB\FIVEHX64.A|filename.obj
hbmk2[test]: Error: Running linker. 2
ilink64.exe @C:\Users\leandro\AppData\Local\Temp\59\keiinl.lnk

hbmk2: Error: Referenced, missing, but unknown function(s): CHARONLY(),
       CHARREM(), NUMAT(), CHARREPL(), BEFORATNUM(), AFTERATNUM(), EXENAME(),
       TOKEN(), TRUENAME(), OCCURS(), CHARONE(), ADDMONTH(), TIMEVALID(),
       PADRIGHT(), ATTOKEN(), HB_GETFILESINZIP(), HB_UNZIPFILE(), REMRIGHT(),
       CEILING(), BLANK(), REMALL(), RANGEREPL(), REMLEFT(), POSCHAR(), PI(),
       SIN(), COS(), ASCPOS(), HB_BASE64DECODE(), DTOR(), TOKENUPPER(),
       LOG10(), FLOOR(), NTOCMONTH(), HB_BASE64ENCODE(), POSREPL(), EOM(),
       TIMETOSEC(), SECTOTIME(), ISLEAP(), CHARMIRR(), CHARSWAP(), NUMTOKEN(),
       DRIVETYPE(), NETRMTNAME(), SETFATTR()

C:\cmplar_64>
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: Compilar con hmbk2 es realmente frustrante
Posted: Sun Sep 15, 2024 12:16 AM

Leandro buenas tardes.

Pudiste utilizar hbmk2 con xHarbour. Otengo el mismo resultado que reportaste.

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Compilar con hmbk2 es realmente frustrante
Posted: Sun Sep 15, 2024 04:53 AM
Usando este HBP construye el EXE correctamente con xHarbour64:

go64.bat
Code (fw): Select all Collapse
set bcc=bcc7764
set path=c:\%bcc%\bin
set HB_USER_CFLAGS=-Ic:\%bcc%\INCLUDE\windows\crtl -Ic:\%bcc%\INCLUDE\windows\sdk -Lc:\%bcc%\LIB
set HB_USER_LDFLAGS=-Lc:\%bcc%\LIB;c:\%bcc%\LIB\psdk
c:\xharbour64\bin\hbmk2.exe test.hbp -xhb -comp=bcc64
test.hbp
Code (fw): Select all Collapse
-gui

test.prg 

-info
#-traceonly
-workdir=

-optim-
-ldflag+=-aa
-Ic:\fwh64\include
-Lc:\fwh64\lib 

-lFivehx64
-lFiveC64

-lct
-lhbzip
-ltip
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: Compilar con hmbk2 es realmente frustrante
Posted: Sun Sep 15, 2024 04:47 PM
Antonio buenas tardes, gracias como siempre por tu apoyo, hicimos los cambios que sugeriste.

Aun no lo logramos, pero creo que ya casi, nos devuelve el siguiente mensaje de error
Code (fw): Select all Collapse
C:\cmplar_64>xgo64

C:\cmplar_64>set bcc=bcc770_64

C:\cmplar_64>set path=c:\bcc770_64\bin

C:\cmplar_64>set HB_USER_CFLAGS=-Ic:\bcc770_64\INCLUDE\windows\crtl -Ic:\bcc770_64\INCLUDE\windows\sdk -Lc:\bcc770_64\LIB

C:\cmplar_64>set HB_USER_LDFLAGS=-Lc:\bcc770_64\LIB;c:\bcc770_64\LIB\psdk

C:\cmplar_64>c:\xHar2407_64\bin\hbmk2.exe xhbcmp.hbp -xhb -comp=bcc64
xHarbour 1.3.1 Intl. (SimpLex) (Build 20240624)
Copyright 1999-2024, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'test.prg'...
Generating C source output to 'test.c'...
Done.
Lines 9, Functions/Procedures 1, pCodes 18
bcc64.exe: warning: argument unused during compilation: '-Lc:\bcc770_64\LIB' [-Wunused-command-line-argument]
test.c:
hbmk2: Linking... test.exe
Turbo Incremental Link64 6.98 Copyright (c) 1997-2023 Embarcadero Technologies, Inc.
Fatal: Unable to open file 'C0W64.OBJ'
hbmk2[xhbcmp]: Error: Running linker. 2
ilink64.exe @C:\Users\leandro\AppData\Local\Temp\62\hbb3u8.lnk

C:\cmplar_64>
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 137
Joined: Mon Oct 22, 2012 04:43 PM
Re: Compilar con hmbk2 es realmente complicado para mi
Posted: Sun Sep 15, 2024 05:07 PM

in your directory from bcc64\lib copy c0w64.o to c0w64.obj

Regards



Ing. Anton Lerchster
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: Compilar con hmbk2 es realmente complicado para mi
Posted: Sun Sep 15, 2024 05:14 PM
Hola Leandro, disculpa que me meta en tu hilo :) , pero veo que sigues batallando para usar hbmk2 con xHarbour 64 bits, yo estoy igual. Ya logré compilar un simple prg con un msginfo(), pero al momento de ejecutarlo tengo error "La aplicación no se pudo iniciar correctamente (0x000007b)". Si compilo el mismo ejemplo a 32 bits pasa perfecto.

Ya estamos cerca, a ver si el maestro Antonio nos da otra guía.

La otra opción, es que alguno de los colegas que estén en 64 bits con xHarbour y utilicen "makefile.mak" para procesar con "make.exe" de Borland7764 nos regalen una copia de su makefile. Definitivamente el script "buildx64.bat" se vuelve inmanejable si tienes muchos prgs, libs propias, objs, y más archivos RC, archivos en c o c++. Con makefile todo esto lo puedes manejar mas o menos ordenada y ligiblemente. A falta de un IDE en xHarbour las opciones serían: o hacer funcionar hbmk2 o un archivo make para usar con el Make.exe de Borland, o volverse loco con el Buildx64.bat., a no ser que haya otras opciones y yo las desconozca.

A los avanzados que usen Borland y xHabour 64 a ver si nos dan una pista.

Gracias y un abrazo para todos

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: Compilar con hmbk2 es realmente complicado para mi
Posted: Sun Sep 15, 2024 05:30 PM
Ya lo logré. Tenia el "manifest" equivocado. Ya compilé mi primer prg con hHarbour64 y Borland7764 usando hbmk2 :D . Ahora, a aprender a usarlo a fondo.

Leando pudiste hacerlo funcionar ? Si aún no lo logras y si quieres, te puedo pasar lo que tengo a ver si te sirve.

Un abrazo,

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Compilar con hmbk2 es realmente complicado para mi
Posted: Sun Sep 15, 2024 06:01 PM
Leandro,

Si haces lo que te ha explicado Anton Lerchster te funcionará perfectamente :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: Compilar con hmbk2 es realmente complicado para mi
Posted: Sun Sep 15, 2024 06:05 PM

Dear friends, you could get hbmk2 to work but I can tell you that it is internally not compatible with BCC64 yet.

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Compilar con hmbk2 es realmente complicado para mi
Posted: Sun Sep 15, 2024 06:09 PM
Enrico Maria Giordano wrote:Dear friends, you could get hbmk2 to work but I can tell you that it is internally not compatible with BCC64 yet.
Dear Enrico,

It is working perfectly!
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: Compilar con hmbk2 es realmente complicado para mi
Posted: Sun Sep 15, 2024 06:47 PM
alerchster wrote:in your directory from bcc64\lib copy c0w64.o to c0w64.obj
Gracias Anton funciono correctamente :D :D
Antonio Linares wrote:Leandro,

Si haces lo que te ha explicado Anton Lerchster te funcionará perfectamente :-)
Si Antonio gracias, ahora vamos a agregar los prg de toda la app, para ver si logramos compilarla en 64bits.

Cualquier cosa comento
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: Compilar con hmbk2 es complicado, pero.. solucionado
Posted: Sun Sep 15, 2024 07:08 PM

Antonio buenas tardes de nuevo yo jejejeje

Dos preguntas?

1- Como le podemos asignar un nombre especifico a nuestro ejecutable final, directo desde el hbmk2?

2- Como hacemos que el exe, se abra de manera automática al final del proceso, solo si fue generado de manera correcta?

Gracias de antemano como siempre.

Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]