Compilar con hmbk2 es complicado, pero...

User avatar
leandro
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Compilar con hmbk2 es complicado, pero...

Post by leandro »

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
Image

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?

Image

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
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
ruben Dario
Posts: 1070
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Compilar con hmbk2 es realmente frustrante

Post by ruben Dario »

Otra alternativa es usar el .bat con .mak , funciona muy bien
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
Antonio Linares
Site Admin
Posts: 42252
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Compilar con hmbk2 es realmente frustrante

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
leandro
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: Compilar con hmbk2 es realmente frustrante

Post 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>

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

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
Cgallegoa
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador
Contact:

Re: Compilar con hmbk2 es realmente frustrante

Post by Cgallegoa »

Leandro buenas tardes.

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

Carlos Gallego

*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
User avatar
Antonio Linares
Site Admin
Posts: 42252
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Compilar con hmbk2 es realmente frustrante

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
leandro
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: Compilar con hmbk2 es realmente frustrante

Post 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>
 
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
alerchster
Posts: 95
Joined: Mon Oct 22, 2012 4:43 pm

Re: Compilar con hmbk2 es realmente complicado para mi

Post by alerchster »

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

Ing. Anton Lerchster
Cgallegoa
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador
Contact:

Re: Compilar con hmbk2 es realmente complicado para mi

Post 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
Saludos,

Carlos Gallego

*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Cgallegoa
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador
Contact:

Re: Compilar con hmbk2 es realmente complicado para mi

Post by Cgallegoa »

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-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
User avatar
Antonio Linares
Site Admin
Posts: 42252
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Compilar con hmbk2 es realmente complicado para mi

Post by Antonio Linares »

Leandro,

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

Antonio Linares
www.fivetechsoft.com
User avatar
Enrico Maria Giordano
Posts: 8728
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: Compilar con hmbk2 es realmente complicado para mi

Post 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.
User avatar
Antonio Linares
Site Admin
Posts: 42252
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Compilar con hmbk2 es realmente complicado para mi

Post 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!
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
leandro
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: Compilar con hmbk2 es realmente complicado para mi

Post by leandro »

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

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: Compilar con hmbk2 es complicado, pero.. solucionado

Post 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.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
Post Reply