Page 1 of 6
Compilar con hmbk2 es complicado, pero...
Posted: Fri Sep 13, 2024 10:31 pm
by leandro
Fue solucionado con la ayuda de todos, muchas gracias por todo
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: Select all | Expand
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: Select all | Expand
-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
Re: Compilar con hmbk2 es realmente frustrante
Posted: Sat Sep 14, 2024 1:46 am
by ruben Dario
Otra alternativa es usar el .bat con .mak , funciona muy bien
Re: Compilar con hmbk2 es realmente frustrante
Posted: Sat Sep 14, 2024 5:06 am
by Antonio Linares
Soporte de
xHarbour para
hbmk2
1. copiar hbmk2.exe a c:\xharbour64\bin
go64.bat (flag
-xhb al llamar a hbmk2.exe)
Code: Select all | Expand
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
Re: Compilar con hmbk2 es realmente frustrante
Posted: Sat Sep 14, 2024 4:50 pm
by leandro
Antonio buenas tardes, gracias por responder
Seguí tu instrucciones y bueno ya tenemos un avance, ahora esta devolviendo estos errores:
Code: Select all | Expand
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>
Re: Compilar con hmbk2 es realmente frustrante
Posted: Sun Sep 15, 2024 12:16 am
by Cgallegoa
Leandro buenas tardes.
Pudiste utilizar hbmk2 con xHarbour. Otengo el mismo resultado que reportaste.
Re: Compilar con hmbk2 es realmente frustrante
Posted: Sun Sep 15, 2024 4:53 am
by Antonio Linares
Usando este HBP construye el EXE correctamente con xHarbour64:
go64.bat
Code: Select all | Expand
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: Select all | Expand
-gui
test.prg
-info
#-traceonly
-workdir=
-optim-
-ldflag+=-aa
-Ic:\fwh64\include
-Lc:\fwh64\lib
-lFivehx64
-lFiveC64
-lct
-lhbzip
-ltip
Re: Compilar con hmbk2 es realmente frustrante
Posted: Sun Sep 15, 2024 4:47 pm
by leandro
Antonio buenas tardes, gracias como siempre por tu apoyo, hicimos _ que sugeriste.
Aun no lo logramos, pero creo que ya casi, nos devuelve el siguiente mensaje de error
Code: Select all | Expand
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>
Re: Compilar con hmbk2 es realmente complicado para mi
Posted: Sun Sep 15, 2024 5:07 pm
by alerchster
in your directory from bcc64\lib copy c0w64.o to c0w64.obj
Re: Compilar con hmbk2 es realmente complicado para mi
Posted: Sun Sep 15, 2024 5:14 pm
by Cgallegoa
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
Re: Compilar con hmbk2 es realmente complicado para mi
Posted: Sun Sep 15, 2024 5:30 pm
by Cgallegoa
Ya lo logré. Tenia el "manifest" equivocado. Ya compilé mi primer prg con hHarbour64 y Borland7764 usando hbmk2
. 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,
Re: Compilar con hmbk2 es realmente complicado para mi
Posted: Sun Sep 15, 2024 6:01 pm
by Antonio Linares
Leandro,
Si haces lo que te ha explicado Anton Lerchster te funcionará perfectamente
Re: Compilar con hmbk2 es realmente complicado para mi
Posted: Sun Sep 15, 2024 6:05 pm
by Enrico Maria Giordano
Dear friends, you could get hbmk2 to work but I can tell you that it is internally not compatible with BCC64 yet.
Re: Compilar con hmbk2 es realmente complicado para mi
Posted: Sun Sep 15, 2024 6:09 pm
by Antonio Linares
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!
Re: Compilar con hmbk2 es realmente complicado para mi
Posted: Sun Sep 15, 2024 6:47 pm
by leandro
alerchster wrote:in your directory from bcc64\lib copy c0w64.o to c0w64.obj
Gracias Anton funciono correctamente
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
Re: Compilar con hmbk2 es complicado, pero.. solucionado
Posted: Sun Sep 15, 2024 7:08 pm
by leandro
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.