FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Issue with FWH64/Harbour64/BCC7164 and Mysql.h file
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Issue with FWH64/Harbour64/BCC7164 and Mysql.h file
Posted: Sat Jun 26, 2021 07:23 PM
Compuin wrote:
Antonio Linares wrote:Se llega a compilar ?

Comprueba si existe Libreria.obj


Si maestro


Con los archivos .PRG si compila y crea ejecutable.

Cuando anexo el archivo .C es que me arroja el error

Este ejemplo funciona perfecto con FWH 32

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Issue with FWH64/Harbour64/BCC7164 and Mysql.h file(SOLVED)
Posted: Sat Jun 26, 2021 07:25 PM

Y en que carpeta está Libreria.obj ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Issue with FWH64/Harbour64/BCC7164 and Mysql.h file(SOLVED)
Posted: Sat Jun 26, 2021 07:28 PM
Antonio Linares wrote:Y en que carpeta está Libreria.obj ?



En \obj

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Issue with FWH64/Harbour64/BCC7164 and Mysql.h file(SOLVED)
Posted: Sat Jun 26, 2021 08:20 PM
Si agrego esta linea asi, es cuando me arroja el error

Code (fw): Select all Collapse
$(BCDIR)\bin\bcc64 -c -I$(HBDIR)\include -I$(BCDIR)\include\windows\sdk -I$(BCDIR)\include\windows\crtl -oobj\$& @tmp c\$&.c


Si no agrego los includes de Harbour, no deja cargar el <hbapi> y por ende, no deja incluir el archivo escrito en .C

Tambien note que el .C no se logra comvertir a .Obj

Como logro corregir ambos?

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Issue with FWH64/Harbour64/BCC7164 and Mysql.h file
Posted: Sat Jun 26, 2021 10:33 PM

Has hecho lo correcto al añadir el path de los includes de Harbour

Que errores te da al compilarlo ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Issue with FWH64/Harbour64/BCC7164 and Mysql.h file
Posted: Sun Jun 27, 2021 12:15 AM
Antonio Linares wrote:Has hecho lo correcto al añadir el path de los includes de Harbour

Que errores te da al compilarlo ?



Code (fw): Select all Collapse
C:\clinica64>c:\bcc7164\bin\make -fsistema.mak
MAKE Version 5.41  Copyright (c) 1987, 2014 Embarcadero Technologies, Inc.
        c:\harbour64\bin\harbour .\prg\comienzo.prg /L /N /W /Oobj\ /Ic:\fwh64\include;c:\harbour64\include;.\include
Harbour 3.2.0dev (r1603181642)
Copyright (c) 1999-2016, http://harbour-project.org/
Compiling '.\prg\comienzo.prg'...
Lines 5118, Functions/Procedures 1
Generating C source output to 'obj\comienzo.c'... Done.
        c:\bcc7164\bin\bcc64 -c -tWM -Ic:\harbour64\include -Ic:\bcc7164\include\windows\sdk -Ic:\bcc7164\include\windows\crtl -oobj\comienzo obj\comienzo.c
Embarcadero C++ 7.20 for Win64 Copyright (c) 2012-2016 Embarcadero Technologies, Inc.
obj\comienzo.c:
Fatal: '.\obj\Libreria.obj' does not exist - don't know how to make it

C:\clinica64>


Alli le puse el error maestro

Y este es el .mak que uso

Code (fw): Select all Collapse
#Borland make 64 bits (c) FiveTech Software 2016

HBDIR=c:\harbour64
BCDIR=c:\bcc7164
FWDIR=c:\fwh64

#change these paths as needed
.path.obj = .\obj
.path.prg = .\prg
.path.ch  = .\Include;$(FWDIR)\include;$(HBDIR)\include
.path.c   = .\
.path.rc  = .\Resource

PRG =        \
.\comienzo.prg \

C =        \
.\Libreria.c  

OBJ=$(PRG:.prg=.obj) $(C:.c=.obj) 
OBJS=$(OBJ:.\=.\obj\)  

PROJECT    : Sistema.exe

sistema.exe  : $(OBJS) sistema.res
   echo off
   echo $(BCDIR)\lib\c0w64.o + > b64.bc
   echo $(OBJS), + >> b64.bc
   echo sistema.exe, + >> b64.bc
   echo sistema.map, + >> b64.bc
   echo $(FWDIR)\lib\Five64.a $(FWDIR)\lib\FiveC64.a + >> b64.bc
   echo $(HBDIR)\lib\hbrtl.a + >> b64.bc
   echo $(HBDIR)\lib\hbvm.a + >> b64.bc
   echo $(HBDIR)\lib\gtgui.a + >> b64.bc
   echo $(HBDIR)\lib\hblang.a + >> b64.bc
   echo $(HBDIR)\lib\hbmacro.a + >> b64.bc
   echo $(HBDIR)\lib\hbrdd.a + >> b64.bc
   echo $(HBDIR)\lib\rddntx.a + >> b64.bc
   echo $(HBDIR)\lib\rddcdx.a + >> b64.bc
   echo $(HBDIR)\lib\rddfpt.a + >> b64.bc
   echo $(HBDIR)\lib\hbsix.a + >> b64.bc
   echo $(HBDIR)\lib\hbdebug.a + >> b64.bc
   echo $(HBDIR)\lib\hbcommon.a + >> b64.bc
   echo $(HBDIR)\lib\hbpp.a + >> b64.bc
   echo $(HBDIR)\lib\hbwin.a + >> b64.bc
   echo $(HBDIR)\lib\hbcpage.a + >> b64.bc
   echo $(HBDIR)\lib\hbct.a + >> b64.bc
   echo $(HBDIR)\lib\hbcplr.a + >> b64.bc
   echo $(HBDIR)\lib\hbpcre.a + >> b64.bc
   echo $(HBDIR)\lib\xhb.a + >> b64.bc
   echo $(HBDIR)\lib\hbziparc.a + >> b64.bc
   echo $(HBDIR)\lib\hbmzip.a + >> b64.bc
   echo $(HBDIR)\lib\hbzlib.a + >> b64.bc
   echo $(HBDIR)\lib\minizip.a + >> b64.bc
   echo $(HBDIR)\lib\png.a + >> b64.bc
   echo $(HBDIR)\lib\hbusrrdd.a + >> b64.bc
   echo $(HBDIR)\lib\hbtip.a + >> b64.bc

   echo $(BCDIR)\lib\cw64.a + >> b64.bc
   echo $(BCDIR)\lib\psdk\kernel32.a + >> b64.bc
   echo $(BCDIR)\lib\psdk\user32.a + >> b64.bc
   echo $(BCDIR)\lib\psdk\iphlpapi.a + >> b64bc
   echo $(BCDIR)\lib\import64.a, >> b64.bc

   IF EXIST .\Resource\Sistema.res echo .\Resource\Sistema.res >> b64.bc
   $(BCDIR)\bin\ilink64 -Gn -aa -Tpe -s @b64.bc
   del b64.bc
   del tmp
   del *.map
   
   if ERRORLEVEL 0 sistema.exe
   
.PRG.OBJ:
  $(HBDIR)\bin\harbour $< /L /N /W /Oobj\ /I$(FWDIR)\include;$(HBDIR)\include;.\include
  $(BCDIR)\bin\bcc64 -c -tWM -I$(HBDIR)\include -I$(BCDIR)\include\windows\sdk -I$(BCDIR)\include\windows\crtl -oobj\$& obj\$&.c

.C.OBJ:
  echo -c -tWM -D__HARBOUR__ -DHB_API_MACROS > tmp
  echo -I$(HBDIR)\include;$(FWDIR)\include >> tmp
  $(BCDIR)\bin\bcc64 -I$(BCDIR)\include\windows\sdk -I$(BCDIR)\include\windows\crtl -oobj\$& @tmp $&.c
  del tmp

Sistema.res : Sistema.rc
  $(BCDIR)\bin\brc32.exe -r -D__64__ -I%bcdir%\include -I%bcdir%\include\windows\sdk .\Resource\Sistema.rc


Archivo comienzo.prg

Code (fw): Select all Collapse
#include "fivewin.ch"
#include "sistema.ch"

FUNCTION Main()

    LOCAL aDir := Directory()
    
    MiAlertaenC("Alerta escrito en C ")
    
    XBrowser aDir TITLE Version() 
    
RETURN Nil


Archivo Libreria.c

Code (fw): Select all Collapse
#include "Windows.h"
#include "hbapi.h"

HB_FUNC( MIALERTAENC ) 
   { 
    MessageBox( GetActiveWindow(),  "ESTA ES MI ALERTA" ,"Mialerta", MB_ICONINFORMATION ) ; 
   }

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Issue with FWH64/Harbour64/BCC7164 and Mysql.h file
Posted: Sun Jun 27, 2021 02:01 PM

Any advice?

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Issue with FWH64/Harbour64/BCC7164 and Mysql.h file
Posted: Sun Jun 27, 2021 07:55 PM

Este valor no está correcto:

.path.c = .\

es por esto que no encuentra Libreria.c y no lo compila

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Issue with FWH64/Harbour64/BCC7164 and Mysql.h file
Posted: Sun Jun 27, 2021 09:46 PM
No, no termina de compilar luego de esa correccion


c:\bcc7164\bin\ilink64 -Gn -aa -Tpe -s @b64.bc
Turbo Incremental Link64 6.75 Copyright (c) 1997-2016 Embarcadero Technologies, Inc.
Fatal: Unable to open file 'LIBRERIA.OBJ'

** error 2 ** deleting Sistema.exe

C:\clinica64>

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Issue with FWH64/Harbour64/BCC7164 and Mysql.h file
Posted: Mon Jun 28, 2021 10:22 AM

Añade esta línea y comprueba si pasa por ahi:

.C.OBJ:
echo -c -tWM -D__HARBOUR__ -DHB_API_MACROS > tmp
echo -I$(HBDIR)\include;$(FWDIR)\include >> tmp
echo "pasa por aqui"
$(BCDIR)\bin\bcc64 -I$(BCDIR)\include\windows\sdk -I$(BCDIR)\include\windows\crtl -oobj\$& @tmp $&.c
del tmp

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Issue with FWH64/Harbour64/BCC7164 and Mysql.h file
Posted: Mon Jun 28, 2021 12:01 PM
Maestro,

hice lo que me recomendo y me arroja esto


C:\clinica64>if not exist obj md obj

C:\clinica64>c:\bcc7164\bin\make -fsistema.mak
MAKE Version 5.41 Copyright (c) 1987, 2014 Embarcadero Technologies, Inc.
echo -c -tWM -D__HARBOUR__ -DHB_API_MACROS > tmp
echo -Ic:\Harbour64\include;c:\Fwh64\include >> tmp
echo "pasa por aqui"
"pasa por aqui"
c:\Bcc7164\bin\bcc64 -Ic:\Bcc7164\include\windows\sdk -Ic:\Bcc7164\include\windows\crtl -oobj\Libreria @tmp Libreria.c
Embarcadero C++ 7.20 for Win64 Copyright (c) 2012-2016 Embarcadero Technologies, Inc.
bcc64.exe: error: no such file or directory: 'Libreria.c'
bcc64.exe: error: no input files

** error 1 ** deleting .\obj\Libreria.obj

C:\clinica64>


Y agregandolo asi, tampoco


.C.OBJ:
echo -c -tWM -D__HARBOUR__ -DHB_API_MACROS > tmp
echo -I$(HBDIR)\include;$(FWDIR)\include >> tmp
echo "pasa por aqui"
$(BCDIR)\bin\bcc64 -I$(BCDIR)\include\windows\sdk -I$(BCDIR)\include\windows\crtl -oobj\$& @tmp c\$&.c
del tmp



c:\Bcc7164\include\windows\sdk/oaidl.h:57: note: previous definition is here
typedef /* [unique] */ __RPC_unique_pointer IDispatch *LPDISPATCH;
^
In file included from c\Libreria.c:1:
In file included from c:\Bcc7164\include\windows\sdk\Windows.h:263:
c:\Bcc7164\include\windows\sdk\commdlg.h:710:21: warning: redefinition of typedef 'CHOOSEFONT' is a C11 feature
[-Wtypedef-redefinition]
typedef CHOOSEFONTA CHOOSEFONT;
^
c:\Bcc7164\include\windows\sdk\commdlg.h:695:21: note: previous definition is here
typedef CHOOSEFONTA CHOOSEFONT;
^
In file included from c\Libreria.c:1:
In file included from c:\Bcc7164\include\windows\sdk\Windows.h:289:
c:\Bcc7164\include\windows\sdk\imm.h:46:19: warning: redefinition of typedef 'LPUINT' is a C11 feature
[-Wtypedef-redefinition]
typedef UINT FAR *LPUINT;
^
c:\Bcc7164\include\windows\sdk\mmsyscom.h:103:21: note: previous definition is here
typedef UINT FAR *LPUINT;
^
c\Libreria.c:2:10: fatal error: 'hbapi.h' file not found
#include "hbapi.h"
^
33 warnings and 1 error generated.

** error 1 ** deleting .\obj\Libreria.obj

C:\clinica64>

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Issue with FWH64/Harbour64/BCC7164 and Mysql.h file
Posted: Mon Jun 28, 2021 02:40 PM
Prueba asi:

$(BCDIR)\bin\bcc64 -I$(BCDIR)\include\windows\sdk -I$(BCDIR)\include\windows\crtl -oobj\$& @tmp .\c\$&.c

Para los warnings prueba este flag:

-std=<value>
y para C11 value es 201112L // gracias a Manu por la info
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Issue with FWH64/Harbour64/BCC7164 and Mysql.h file
Posted: Mon Jun 28, 2021 02:42 PM
Antonio Linares wrote:Prueba asi:

$(BCDIR)\bin\bcc64 -I$(BCDIR)\include\windows\sdk -I$(BCDIR)\include\windows\crtl -oobj\$& @tmp .\c\$&.c


Sigue arrojando el error anterior

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Issue with FWH64/Harbour64/BCC7164 and Mysql.h file
Posted: Mon Jun 28, 2021 03:12 PM
Maestro,

Finalmente logro compilar el archivo .C

Modifique de esta manera y logro hacerlo

.PRG.OBJ:
  $(HBDIR)\bin\harbour $< /L /N /W /Oobj\ /I$(FWDIR)\include;$(HBDIR)\include;.\include
  $(BCDIR)\bin\bcc64 -c -I$(HBDIR)\include -I$(BCDIR)\include\windows\sdk -I$(BCDIR)\include\windows\crtl -oobj\$&.obj obj\$&.c

.C.OBJ:
   echo -c -tWM -D__HARBOUR__ -DHB_API_MACROS > tmp
   echo -I$(HBDIR)\include;$(FWDIR)\include >> tmp
   $(BCDIR)\bin\bcc64 -c -v -I$(BCDIR)\include\windows\sdk -I$(BCDIR)\include\windows\crtl -I$(HBDIR)\include -oobj\$&.obj c\$&.c
   del tmp

Sistema.res : Sistema.rc
  $(BCDIR)\bin\brc32.exe -r -D__64__ -I%bcdir%\include -I%bcdir%\include\windows\sdk .\Resource\Sistema.rc


Lo unico que no me quedo claro es donde debo colocar el flag std=<201112L> para evitar los warning

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Issue with FWH64/Harbour64/BCC7164 and Mysql.h file
Posted: Tue Jun 29, 2021 08:48 AM

Muy bien

$(BCDIR)\bin\bcc64 -c -std=201112L ...

regards, saludos

Antonio Linares
www.fivetechsoft.com