Page 1 of 4

Busco consejo sobre opciones para compilar a 64Bits

Posted: Wed Apr 29, 2020 10:52 am
by José Vicente Beltrán
Hola compañeros,
ya va siendo hora de migrar de 32 a 64 bits, ¿Alguien puede decirme que opciones de compilación tenemos en la actualidad?.
Actualmente uso FWH 32 + Harbour/xHarbour + Borland 7.
Preferiría no tener que usar MVS. Pero si no hay mas remedio ...
En cualquier caso, ¿que opción viene siendo la preferida en el foro?
Gracias :shock:

Re: Busco consejo sobre opciones para compilar a 64Bits

Posted: Wed Apr 29, 2020 12:33 pm
by cnavarro
Jose Vicente, el problema no es si utilizar uno u otro compilador, sino si puedes crear una versión de Harbour para tu compilador preferido
http://forums.fivetechsupport.com/viewt ... 02#p231374

Re: Busco consejo sobre opciones para compilar a 64Bits

Posted: Wed Apr 29, 2020 1:13 pm
by José Vicente Beltrán
Gracias por contestar Carlos, esto deja bastante claro que no se muy bien por donde empezar.
¿Donde puedo ver algún tipo de guia o tutorial para generar un Harbour64 utilizando MVS o MINGW?

Por otra parte he visto en el apartado 'novedades' del foro que existe un xHarbour64 que data de 2017 pero no parece que tenga muchos fans .
:shock:

Re: Busco consejo sobre opciones para compilar a 64Bits

Posted: Wed Apr 29, 2020 1:16 pm
by cnavarro
José Vicente Beltrán wrote:Gracias por contestar Carlos, esto deja bastante claro que no se muy bien por donde empezar.
¿Donde puedo ver algún tipo de guia o tutorial para generar un Harbour64 utilizando MVS o MINGW?

Por otra parte he visto en el apartado 'novedades' del foro que existe un xHarbour64 que data de 2017 pero no parece que tenga muchos fans .
:shock:
Si Jose Vicente, soy Cristobal, y, en cuanto a lo que comentas hay información en el foro sobre el tema. Buscaré lo que resulte mas sencillo y lo pondremos por aquí a modo de resumen, pero, entiendes que vas a necesitar Fivewin 64 bits?

Re: Busco consejo sobre opciones para compilar a 64Bits

Posted: Wed Apr 29, 2020 2:11 pm
by José Vicente Beltrán
Ups! :oops: perdón por el lapsus, Cristobal.
Y si, el que se necesita FW64 es casi lo único que tengo claro es todo lo demás lo que me falla.
El que se pueda echar mano de una especie de tutorial para migrar de 32 a 64 bits sería muy interesante para la gente que como yo tiene dudas de casi todo.
gracias de nuevo :shock:

Re: Busco consejo sobre opciones para compilar a 64Bits

Posted: Wed Apr 29, 2020 2:30 pm
by cnavarro
Jose Vicente, en cuanto al código, no tienes que hacer nada, es compatible con la versión de Fw64bits, quizás salvo raras excepciones, pero para eso también tienes la function IsExe64()

Re: Busco consejo sobre opciones para compilar a 64Bits

Posted: Wed Apr 29, 2020 4:22 pm
by Baxajaun
Buenas tardes José Vicente,

yo uso MinGW, lo suelo descargar de estos dos enlaces http://winlibs.com/ y https://nuwen.net/mingw.html. Para construir Harbour, lo descargo de https://github.com/harbour/core/archive/master.zip.

Para construir Harbour utilizo el siguiente fichero bat

Code: Select all

REM MinGW 9.3 64 bits
set PATH=%PATH%;F:\Develop\CCompilers\WinLibs\mingw64\bin;F:\curl;F:\curl\lib;F:\curl\bin;f:\curl\include;F:\openssl;F:\openssl\lib;F:\openssl\include\openssl;f:\openssl\engines-1_1;f:\openssl\bin
set HB_INSTALL_PREFIX=F:\Develop\HarbourMinGW\9364
set HB_PLATFORM=win
set HB_COMPILER=mingw64
SET HB_WITH_CURL=F:\curl\include
set HB_WITH_OCILIB=f:\Develop\ocilib\include
SET HB_WITH_OPENSSL=f:\openssl\include
REM set HB_WITH_SSH=F:\Develop\Harbour-Source\SSH\64\include
SET HB_BUILD_CONTRIB_DYN=yes
SET HB_BUILD_DYN=yes
set HB_BUILD_VERBOSE=yes
set HB_REBUILD_EXTERN=yes
set HB_STATIC_OPENSSL=yes
set HB_STATIC_CURL=yes

win-make clean install > logMinGW9364.txt 2>&1
Espero te sea de utilidad.

Muchas gracias.

Saludos

Re: Busco consejo sobre opciones para compilar a 64Bits

Posted: Wed Apr 29, 2020 5:42 pm
by MOISES
Hola José Vicente:

Nosotros llevamos muchos años construyendo aplicaciones de 64 bits con MSVC. Puesto que es el compilador que usa Microsoft para construir Windows, y además hay una versión gratuita, la Comunnity/Express, no veo que razón hay para usar gcc, pues sería como pretender usar MSVC en Linux. Fivetech proporciona los ficheros .bat de ejemplo para poder construir los ejecutables en 64 bits.

Borland también tiene una versión en 64 bits. Con la build de Harbour que suministra Fivetech es también posible crear con Borland aplicaciones de 64 bits. Lo probé en su momento y funcionó correctamente. Parece que ahora hay problemas para construir la última versión de Harbour con Borland 64, pero supongo que pronto serán superados.

Cualquier cosa, a tu disposición. Un saludo

Re: Busco consejo sobre opciones para compilar a 64Bits

Posted: Thu Apr 30, 2020 10:30 am
by José Vicente Beltrán
Acabo de comprar FWH64.
Gracias a todos por los consejos, empezaré con BORLAND de toda la vida y ya iré dando la lata en el foro con mis preguntas porque voy a necesitar mas consejos. :shock:

Re: Busco consejo sobre opciones para compilar a 64Bits

Posted: Thu Apr 30, 2020 4:00 pm
by jvtecheto
José Vicente Beltrán wrote:Acabo de comprar FWH64.
Gracias a todos por los consejos, empezaré con BORLAND de toda la vida y ya iré dando la lata en el foro con mis preguntas porque voy a necesitar mas consejos. :shock:
Enhorabuena amigo, espero que lo disfrutes, tus preguntas nos vendrán bien a muchos para cuando migremos.

Saludos

Jose.



Enviado desde mi POCOPHONE F1 mediante Tapatalk

Re: Busco consejo sobre opciones para compilar a 64Bits

Posted: Sat May 02, 2020 2:00 pm
by leandro
Buenos dias para todos, aprovechando la ventana que abrió Jose Vicente, intente compilar nuestra aplicación en 64 bits, intente con fivedit, pero cuando termina de compilar, sale el siguiente error, pero no dice exactamente que es:

Code: Select all

Turbo Incremental Link64 6.75 Copyright (c) 1997-2016 Embarcadero Technologies, Inc.
Fatal: Could not write to C:\DLYMA6464\ (error code 2)
Link Error
 
La configuración del proyecto

Code: Select all

[FivEdit Project]
Version=FWH 20.03
[PRG]
1=C:\DLYMA64\PRG\R32_menu.prg
2=C:\DLYMA64\PRG\R32_perm.prg
3=C:\DLYMA64\PRG\Alyma.prg
4=C:\DLYMA64\PRG\R32_bode.prg
5=C:\DLYMA64\PRG\R32_cate.prg
6=C:\DLYMA64\PRG\R32_ciud.prg
7=C:\DLYMA64\PRG\R32_colo.prg
8=C:\DLYMA64\PRG\R32_tall.prg
9=C:\DLYMA64\PRG\R32_niv1.prg
10=C:\DLYMA64\PRG\R32_niv2.prg
11=C:\DLYMA64\PRG\R32_niv3.prg
12=C:\DLYMA64\PRG\R32_xls.prg
13=C:\DLYMA64\PRG\R32_medi.prg
14=C:\DLYMA64\PRG\R32_lipr.prg
15=C:\DLYMA64\PRG\R32_comp.prg
16=C:\DLYMA64\PRG\R32_cent.prg
17=C:\DLYMA64\PRG\R32_plan.prg
18=C:\DLYMA64\PRG\R32_ctas.prg
19=C:\DLYMA64\PRG\R32_cale.prg
20=C:\DLYMA64\PRG\R32_arti.prg
21=C:\DLYMA64\PRG\R32_terc.prg
22=C:\DLYMA64\PRG\R32_caca.prg
23=C:\DLYMA64\PRG\R32_llav.prg
24=C:\DLYMA64\PRG\R32_inin.prg
25=C:\DLYMA64\PRG\R32_capt.prg
26=C:\DLYMA64\PRG\R32_caja.prg
27=C:\DLYMA64\PRG\R32_casa.prg
28=C:\DLYMA64\PRG\R32_usua.prg
29=C:\DLYMA64\PRG\R32_rcja.prg
30=C:\DLYMA64\PRG\R32_cofac.prg
31=C:\DLYMA64\PRG\R32_rin1.prg
32=C:\DLYMA64\PRG\R32_cruc.prg
33=C:\DLYMA64\PRG\R32_dofa.prg
34=C:\DLYMA64\PRG\R32_devo.prg
35=C:\DLYMA64\PRG\R32_caen.prg
36=C:\DLYMA64\PRG\R32_exte.prg
37=C:\DLYMA64\PRG\R32_crcc.prg
38=C:\DLYMA64\PRG\R32_cier.prg
39=C:\DLYMA64\PRG\R32_mant.prg
40=C:\DLYMA64\PRG\R32_rin2.prg
41=C:\DLYMA64\PRG\R32_rin3.prg
42=C:\DLYMA64\PRG\R32_rve1.prg
43=C:\DLYMA64\PRG\R32_empr.prg
44=C:\DLYMA64\PRG\R32_conf.prg
45=C:\DLYMA64\PRG\Funciones.prg
46=C:\DLYMA64\PRG\R32_fact.prg
47=C:\DLYMA64\PRG\Afact.prg
48=C:\DLYMA64\PRG\Asql.prg
49=C:\DLYMA64\PRG\Aitem.prg
50=C:\DLYMA64\PRG\Abusc.prg
51=C:\DLYMA64\PRG\R32_rve2.prg
52=C:\DLYMA64\PRG\Tdeskalert.prg
53=C:\DLYMA64\PRG\Anota.prg
54=C:\DLYMA64\PRG\R32_nota.prg
55=C:\DLYMA64\PRG\Cdosys.prg
56=C:\DLYMA64\PRG\R32_rgr1.prg
57=C:\DLYMA64\PRG\Arete.prg
58=C:\DLYMA64\PRG\R32_reci.prg
59=C:\DLYMA64\PRG\Areci.prg
60=C:\DLYMA64\PRG\R32_coin.prg
61=C:\DLYMA64\PRG\Adoin.prg
62=C:\DLYMA64\PRG\R32_coco.prg
63=C:\DLYMA64\PRG\R32_tabl.prg
[CH]
[H]
[C]
[CPP]
[CXX]
[HRB]
[RC]
[RES]
1=C:\DLYMA64\RES\Contable.res
[OBJ]
[O]
[LIB]
[DLL]
[INI]
[TXT]
[HTML]
[VIEW]
[TPL]
[CSS]
[JS]
[PREFERENCES]
A0=6
A1=.T.
0=C:\FIVEDIT\borland73.fiv
15=Blue
11=16777215
12=8388608
14={"FixedSys",0,-12,.F.,.F.,0,0,,.F.,.F.,.F.,0,3,2,1,,49}
16=2
17=.F.
18=C:\Fivedit
19=.F.
20=1
21=SC_CHARSET_DEFAULT
22=HB_CODEPAGE_ESWIN
23=1
24=.T.
25=.T.
26=.T.
27=Fwfun.chm
28=8388608
29={"Lucida Console",0,-12,.F.,.F.,0,0,,.F.,.F.,.F.,0,3,2,1,,49}
30=SciLexer.dll
31=SCLEX_FWHC
32=.F.
33=2015
35=1
36=1
37=1
38=.T.
39=.F.
40=.F.
42=C:\dlyma64\dlyma64.prj
43=
66=
67=3026478
73=
103=0
104=\localhost\xampp\
105=C:\xampp\php\php.exe
106=.\HBFormat.ini
107=.F.
M1=.F.
M21=.F.
1=C:\fwh641909
2=64 bits
3=
4=C:\xhar641909
5=xHarbour
6=
7=
8=C:\bcc73064\
9=/Gn /aa /Tpe /s
10=
34=/c /O2
41=Borland C/C++ 7.30
44=
45=
46=
47=
48=.T.
49=.F.
50=.T.
51=.F.
52=.T.
53=.F.
54=.T.
55=.T.
56=.T.
57=.F.
58=.F.
59=.F.
60=.F.
61=.T.
62=FiveWin
63=C:\bcc73064\\bin\bcc64.exe
64=C:\bcc73064\bin\ilink64.exe
65=C:\bcc73064\bin\brc32.exe
68=.F.
69=.F.
70=.T.
71=40
72=-r
74=C:\bcc73064\bin\tlib64.exe
78=.F.
79=Standard,Visual,Dark,Blue,Gray
80=.T.
81=.T.
82=.F.
83=.F.
87=5
88=
89=.F.
90=.F.
91=.F.
92=.F.
93=.F.
94=.F.
95=255
98=.F.
99=0
100=1
101=1
102=.T.
232=.F.
8091=.T.
8092=.T.
8093=
8101=Segoe UI Symbol
8102=-11
8103=0
8104=16777215
9100=.F.
9110=
9120=
9130=
9140=
9149=.F.
9150=.F.
9160=
75=.T.
76=.F.
77=.F.
84=C:\Fivedit\
85=C:\Fivedit\
86=.\
96=C:\DLYMA6464\prg\r32_menu.prg
97=C:\DLYMA6464\DLYMA64.exe
[USERLIBS]
001=C:\fwh641909\lib\fivehx.lib,1
002=C:\fwh641909\lib\fivehc.lib,1
003=C:\fwh641909\lib\libmysql64.a,1
[XHARBOURLIBS]
001=C:\xhar641909\lib\gtgui.a,1
002=C:\xhar641909\lib\rtl.a,1
003=C:\xhar641909\lib\vm.a,1
004=C:\xhar641909\lib\lang.a,1
005=C:\xhar641909\lib\macro.a,1
006=C:\xhar641909\lib\rdd.a,1
007=C:\xhar641909\lib\dbfntx.a,1
008=C:\xhar641909\lib\dbfcdx.a,1
009=C:\xhar641909\lib\dbffpt.a,1
010=C:\xhar641909\lib\hbsix.a,1
011=C:\xhar641909\lib\debug.a,1
012=C:\xhar641909\lib\common.a,1
013=C:\xhar641909\lib\pp.a,1
014=C:\xhar641909\lib\ct.a,1
015=C:\xhar641909\lib\pcrepos.a,1
016=C:\xhar641909\lib\hbzip.a,1
017=C:\xhar641909\lib\zlib.a,1
018=C:\xhar641909\lib\png.a,1
019=C:\xhar641909\lib\hbmxml.a,1
020=C:\xhar641909\lib\hbzebra.a,1
021=C:\xhar641909\lib\tip.a,1
022=C:\xhar641909\lib\libmisc.a,1
023=C:\xhar641909\lib\codepage.a,1
[CCOMPLIBS]
001=C:\bcc73064\lib\cw32.a,1
002=C:\bcc73064\lib\uuid.a,1
003=C:\bcc73064\lib\import32.a,1
004=C:\bcc73064\lib\odbc32.a,1
005=C:\bcc73064\lib\nddeapi.a,1
006=C:\bcc73064\lib\Iphlpapi.a,1
007=C:\bcc73064\lib\msimg32.a,1
008=C:\bcc73064\lib\psapi.a,1
009=C:\bcc73064\lib\rasapi32.a,1
010=C:\bcc73064\lib\gdiplus.a,1
011=C:\bcc73064\lib\riched20.a,1
012=C:\bcc73064\lib\shell32.a,1
013=C:\bcc73064\lib\urlmon.a,1
[FILES]
00=1

 
por otro lado también intente compilar alguno de los ejemplos con BUILDX64.BAT, pero también sale error:

Code: Select all

┌────────────────────────────────────────────────────────────────────────────┐
?FiveWin for xHarbour 19.09 - Sep. 2019          xHarbour development power │▄
?(c) FiveTech 1993-2019 for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8/10 │█
└────────────────────────────────────────────────────────────────────────────┘?
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀?
Compiling...
xHarbour 1.2.3 Intl. (SimpLex) (Build 20200311)
Copyright 1999-2020, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'xbrwin7.prg' and generating preprocessed output to 'xbrwin7.ppo'...
Generating C source output to 'xbrwin7.c'...
Done.
Lines 29, Functions/Procedures 1, pCodes 179
"c:\bcc73064\bin\bcc32" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.
* Linking errors *

C:\fwh641909\samples>
 

Re: Busco consejo sobre opciones para compilar a 64Bits

Posted: Sat May 02, 2020 2:21 pm
by cnavarro
Leandro, fijate en las lineas 96 y 97 de tu fichero proyecto, creo que el path es incorrecto
Eso es que está mal configurado en PREFERENCES-PROJECT los paths de la aplicación, etc. revísalos

Re: Busco consejo sobre opciones para compilar a 64Bits

Posted: Sat May 02, 2020 4:28 pm
by leandro
Tienes toda la razón Cristobal, ya lo corregí, pero cambiamos de error jejejeje:

Code: Select all

Turbo Incremental Link64 6.75 Copyright (c) 1997-2016 Embarcadero Technologies, Inc.
Fatal: Unable to open file 'R32_MENU.O'
Link Error 
 

Re: Busco consejo sobre opciones para compilar a 64Bits

Posted: Sat May 02, 2020 5:33 pm
by José Vicente Beltrán
Después de trastear un rato con la instalación de Visual Studio Community 2019 voy a intentar generar mi primer ejecutable de 64 bits pero en la instalacion de FWH64 no encuentro el build.bat correspondiente, tan solo un .mak que no se corresponde con la versión de Visual Studio.

Code: Select all

#Visual64 Microsoft make, (c) FiveTech Software 2011

HBDIR=d:\fivewin\harbour_MSVC_64
VCDIR=d:\vc64
FWDIR=..\

.SUFFIXES : .PRG .OBJ

PRG =          \
.\APPLICAT.PRG \
.\CODE.PRG     \
.\DATABASE.PRG \
.\DEBUG.PRG    \
.\DESIGN.PRG   \
.\INDEX.PRG    \
.\INSPECT.PRG  \
.\MENU.PRG     \
.\OPTIONS.PRG  \
.\PROGRAM.PRG  \
.\PROJECT.PRG  \
.\RECORD.PRG   \
.\REP.PRG      \
.\REPORT.PRG   \
.\RESOURCE.PRG \
.\TOOLBAR.PRG  \
.\TOOLS.PRG    \
.\VISUAL.PRG   

OBJ=$(PRG:.PRG=.OBJ)
OBJS=$(OBJ:.\=.\obj64\)

PROJECT : visual64.exe

visual64.exe : $(OBJS) VISUAL64.RES ..\lib\FiveH64.lib ..\lib\FiveHC64.lib
   echo $(OBJS) > msvc.tmp
   echo $(FWDIR)\lib\FiveH64.lib $(FWDIR)\lib\FiveHC64.lib >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbrtl.lib    >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbvm.lib     >> msvc.tmp
   echo $(HBDIR)\lib\vc64\gtgui.lib    >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hblang.lib   >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbmacro.lib  >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbrdd.lib    >> msvc.tmp
   echo $(HBDIR)\lib\vc64\rddntx.lib   >> msvc.tmp
   echo $(HBDIR)\lib\vc64\rddcdx.lib   >> msvc.tmp
   echo $(HBDIR)\lib\vc64\rddfpt.lib   >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbsix.lib    >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbdebug.lib  >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbcommon.lib >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbpp.lib     >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbcpage.lib  >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbwin.lib    >> msvc.tmp
   echo $(HBDIR)\lib\vc64\xhb.lib      >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbcplr.lib   >> msvc.tmp
   echo $(HBDIR)\lib\vc64\png.lib      >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbzlib.lib   >> msvc.tmp
   echo $(HBDIR)\lib\vc64\hbct.lib     >> msvc.tmp

   echo $(VCDIR)\lib\kernel32.lib  >> msvc.tmp
   echo $(VCDIR)\lib\user32.lib    >> msvc.tmp
   echo $(VCDIR)\lib\gdi32.lib     >> msvc.tmp
   echo $(VCDIR)\lib\winspool.lib  >> msvc.tmp
   echo $(VCDIR)\lib\comctl32.lib  >> msvc.tmp
   echo $(VCDIR)\lib\comdlg32.lib  >> msvc.tmp
   echo $(VCDIR)\lib\advapi32.lib  >> msvc.tmp
   echo $(VCDIR)\lib\shell32.lib   >> msvc.tmp
   echo $(VCDIR)\lib\ole32.lib     >> msvc.tmp
   echo $(VCDIR)\lib\oleaut32.lib  >> msvc.tmp
   echo $(VCDIR)\lib\oledlg.lib    >> msvc.tmp
   echo $(VCDIR)\lib\uuid.lib      >> msvc.tmp
   echo $(VCDIR)\lib\odbc32.lib    >> msvc.tmp
   echo $(VCDIR)\lib\odbccp32.lib  >> msvc.tmp
   echo $(VCDIR)\lib\iphlpapi.lib  >> msvc.tmp
   echo $(VCDIR)\lib\mpr.lib       >> msvc.tmp
   echo $(VCDIR)\lib\version.lib   >> msvc.tmp
   echo $(VCDIR)\lib\wsock32.lib   >> msvc.tmp
   echo $(VCDIR)\lib\psapi.lib     >> msvc.tmp
   echo $(VCDIR)\lib\msimg32.lib   >> msvc.tmp

   IF EXIST visual64.res echo visual64.res >> msvc.tmp

   SET LIB=$(VCDIR)\lib
   $(VCDIR)\bin\link @msvc.tmp /out:visual64.exe /nologo /subsystem:windows /force:multiple /NODEFAULTLIB:libc > link.log

   @type link.log
   @del msvc.tmp

.PRG{.\obj64\}.OBJ:
   $(HBDIR)\bin\harbour $< /n /Oobj64\ /i$(FWDIR)\include;$(HBDIR)\include
   $(VCDIR)\bin\cl -c -TP -W3 -GA -I$(HBDIR)\include -I$(VCDIR)\include -Fo$* $*.c

visual64.res : visualfw.rc
   $(VCDIR)\bin\rc -r -d__64__ -fovisual64.res -I$(VCDIR)\include visualfw.rc
¿Sería alguien tan amable de pasarme el build.bat correcto para esta versión?
Gracias :shock:

Re: Busco consejo sobre opciones para compilar a 64Bits

Posted: Sat May 02, 2020 5:38 pm
by Antonio Linares
José Vicente,

samples\buildh64.bat