FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Migrar a Harbour - Errores del compilador
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Migrar a Harbour - Errores del compilador
Posted: Tue Dec 16, 2014 09:27 PM

Comprueba que tengas stdarg.h en c:\bcc582\include

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: Migrar a Harbour - Errores del compilador
Posted: Tue Dec 16, 2014 09:28 PM

Si. Lo tengo igual:

bcc32:
-I"c:\bcc582\include;c:\bcc582\include\dinkumware"
-L"c:\bcc582\lib;c:\bcc582\lib\psdk"

ilink:
-L"c:\bcc582\lib;c:\bcc582\lib\psdk"

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Migrar a Harbour - Errores del compilador
Posted: Tue Dec 16, 2014 09:28 PM
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: Migrar a Harbour - Errores del compilador
Posted: Tue Dec 16, 2014 09:29 PM

Est谩 en ese directorio.

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Migrar a Harbour - Errores del compilador
Posted: Tue Dec 16, 2014 09:34 PM

Pues deber铆a encontrarlo...

te da algun otro error antes de ese ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: Migrar a Harbour - Errores del compilador
Posted: Tue Dec 16, 2014 09:41 PM

No. No me da ning煤n error antes de este.
La secuencia de mensajes de este post contiene la migraci贸n de xHarbour (que la compila bien) a Harbour. De modo que lo que se ve es como estamos corrigiendo los errores nuevos seg煤n se van superando los anteriores.

Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: Migrar a Harbour - Errores del compilador
Posted: Tue Dec 16, 2014 09:47 PM
Apunto el mensaje completo que arroja el compilador:

c:\harbour\include\hbdefs.h(52) Error F0029 can麓t open #include file 'stdarg.h'
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: Migrar a Harbour - Errores del compilador
Posted: Tue Dec 16, 2014 10:41 PM
Antonio, puedes probar a compilar este simple c贸digo con la 煤ltima versi贸n del buildh.bat que se descarga con la instalaci贸n de FW.:
Esto da el error que he rese帽ado m谩s arriba con stdarg.h:

Code (fw): Select all Collapse
    #include "FiveWin.ch"
    #include <hbapiitm.h>   //Necesario para HARBOUR

    FUNCTION Main()

        ? "hola"

    RETURN NIL


Y este es el buildh.bat que utilizo:

Code (fw): Select all Collapse
@ECHO OFF
CLS
ECHO 脷脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛驴
ECHO 鲁 FiveWin for Harbour 14.11 - Nov.  2014          Harbour development power  鲁脺
ECHO 鲁 (c) FiveTech, 1993-2014   for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8 鲁脹
ECHO 脌脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脛脵脹
ECHO 每 脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽脽

if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST

if "%FWDIR%" == "" set FWDIR=C:\fwh
if "%HBDIR%" == "" set HBDIR=c:\harbour
rem if "%2" == "/b" set GT=gtwin
rem if not "%2" == "/b" set GT=gtgui
set GT=gtgui

ECHO Compiling...

set hdir=%HBDIR%
set hdirl=%hdir%\lib
set fwh=%FWDIR%
if exist c:\bcc582 set bcdir=c:\bcc582
if exist c:\bcc64 set bcdir=c:\bcc64

%hdir%\bin\harbour %1 /n /i%fwh%\include;%hdir%\include /p %2 %3 > comp.log 2> warnings.log
if errorlevel 1 goto COMPILEERRORS
@type comp.log
@type warnings.log

echo -O2 -e%1.exe -I%hdir%\include -I%bcdir%\include %1.c > b32.bc
%bcdir%\bin\bcc32 -M -c -w-aus @b32.bc
:ENDCOMPILE

IF EXIST %1.rc %bcdir%\bin\brc32 -r -I%bcdir%\include -I%bcdir%\include\windows\sdk %1
rem IF EXIST %1.rc %vcdir%\bin\rc -r -d__FLAT__ %1

echo %bcdir%\lib\c0w32.obj + > b32.bc
echo %1.obj, + >> b32.bc
echo %1.exe, + >> b32.bc
echo %1.map, + >> b32.bc

rem 颅 Hay que poner delante las que sustituyen a las de FW, o mejor dicho
rem    el enlazador pone en el exe las que primero encuentra !
echo C:\CLIWIN\TBROWSE17b\LIB\TWBRWX32_H.lib + >> b32.bc

echo %fwh%\lib\FiveH.lib %fwh%\lib\FiveHC.lib %fwh%\lib\libmysql.lib %fwh%\lib\dolphin.lib + >> b32.bc
echo %hdirl%\hbwin.lib + >> b32.bc
echo %hdirl%\%GT%.lib + >> b32.bc
echo %hdirl%\hbrtl.lib + >> b32.bc
echo %hdirl%\hbvm.lib + >> b32.bc
echo %hdirl%\hblang.lib + >> b32.bc
echo %hdirl%\hbmacro.lib + >> b32.bc
echo %hdirl%\hbrdd.lib + >> b32.bc
echo %hdirl%\rddntx.lib + >> b32.bc
echo %hdirl%\rddcdx.lib + >> b32.bc
echo %hdirl%\rddfpt.lib + >> b32.bc
echo %hdirl%\hbsix.lib + >> b32.bc
echo %hdirl%\hbdebug.lib + >> b32.bc
echo %hdirl%\hbcommon.lib + >> b32.bc
echo %hdirl%\hbpp.lib + >> b32.bc
echo %hdirl%\hbcpage.lib + >> b32.bc
echo %hdirl%\hbcplr.lib + >> b32.bc
echo %hdirl%\hbct.lib + >> b32.bc
echo %hdirl%\hbpcre.lib + >> b32.bc
echo %hdirl%\xhb.lib + >> b32.bc
echo %hdirl%\hbziparc.lib + >> b32.bc
echo %hdirl%\hbmzip.lib + >> b32.bc
echo %hdirl%\hbzlib.lib + >> b32.bc
echo %hdirl%\minizip.lib + >> b32.bc
echo %hdirl%\png.lib + >> b32.bc
echo %hdirl%\hbcurl.lib + >> b32.bc
echo %hdirl%\hbusrrdd.lib + >> b32.bc

echo %hdirl%\hbcomm.lib + >> b32.bc

echo %fwh%\lib\libcurl.lib + >> b32.bc

rem Uncomment these two lines to use Advantage RDD
rem echo %hdirl%\rddads.lib + >> b32.bc
rem echo %hdirl%\Ace32.lib + >> b32.bc

rem echo %fwh%\lib\dolphin.lib + >> b32.bc
rem echo %fwh%\lib\libmysql.lib + >> b32.bc
 
echo %bcdir%\lib\cw32.lib + >> b32.bc
echo %bcdir%\lib\uuid.lib + >> b32.bc
echo %bcdir%\lib\import32.lib + >> b32.bc
echo %bcdir%\lib\wininet.lib + >> b32.bc
echo %bcdir%\lib\ws2_32.lib + >> b32.bc
echo %bcdir%\lib\psdk\odbc32.lib + >> b32.bc
echo %bcdir%\lib\psdk\nddeapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\iphlpapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\msimg32.lib + >> b32.bc
echo %bcdir%\lib\psdk\psapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\rasapi32.lib + >> b32.bc
echo %bcdir%\lib\psdk\gdiplus.lib + >> b32.bc
echo %bcdir%\lib\psdk\shell32.lib, >> b32.bc

IF EXIST %1.res echo %1.res >> b32.bc
if %GT% == gtwin %bcdir%\bin\ilink32 -Gn -Tpe -s @b32.bc
IF ERRORLEVEL 1 GOTO LINKERROR
if %GT% == gtgui %bcdir%\bin\ilink32 -Gn -aa -Tpe -s @b32.bc
IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built *
rem signtool.exe sign /fd sha256 %1.exe
%1
GOTO EXIT
ECHO

rem delete temporary files
@del %1.c

:COMPILEERRORS
@type comp.log
@type warnings.log
ECHO * Compile errors *
GOTO EXIT

:LINKERROR
ECHO * Linking errors *
GOTO EXIT

:SINTAX
ECHO    SYNTAX: Build [Program]     {-- No especifiques la extensi垄n PRG
ECHO                                {-- Don't specify .PRG extension
GOTO EXIT

:NOEXIST
ECHO The specified PRG %1 does not exist

:EXIT


He revisado los archivos de configuraci贸n del bcc582 y est谩 todo apuntando a su sitio. Por m谩s que lo reviso No encuentro donde est谩 el problema.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Migrar a Harbour - Errores del compilador
Posted: Wed Dec 17, 2014 05:50 AM

Paz,

Este include:

include <hbapiitm.h>

no tienes que ponerlo en el PRG sino en el fichero en C que est谩s compilando.

Estas a帽adiendo alg煤n fichero en C a tu aplicaci贸n ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: Migrar a Harbour - Errores del compilador
Posted: Wed Dec 17, 2014 07:07 AM

Ese fichero de lo estoy poniendo en un prg en el que incluyo parte del c贸digo en C mediante el empleo de las clusulas #pragma BEGINDUMP. El problema es que lo hab铆a incluido fuera de esas cla煤sulas porque no sab铆a que deb铆a de estar dentro. Poni茅ndolo dentro desaparece el fallo.
Gracias Antonio.

Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: Migrar a Harbour - Errores del compilador
Posted: Wed Dec 17, 2014 07:12 AM
Creo, que ya me queda poco para la migraci贸n. He conseguido que compile, con muchos warnings, pero compila y genera el exe.

Pero ahora al arrancar el programa me da un error que al construirlo con xHarbour no da y tampoco entiendo de donde sale. Se trata de una clase que incluye una referencia a Super y arroja el siguiente error:

Code (fw): Select all Collapse
   Error description: Error BASE/1003  Variable does not exist: SUPER

Stack Calls
===========
   Called from: .\sourceh\classes\twbrowse\wbrowse.PRG => (b)TWBROWSE( 600 )
   Called from: .\sourceh\classes\twbrowse\wbrowse.PRG => TWBROWSE:INITIATE( 0 )
   Called from:  => __OBJSENDMSG( 0 )
   Called from: .\source\function\HARBOUR.PRG => OSEND( 288 )
   Called from: .\source\function\HARBOUR.PRG => ASEND( 256 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:INITIATE( 645 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 315 )
   Called from: wintpv.prg => ARRANQUETPV( 1662 )
   Called from: wintpv.prg => (b)MAIN( 392 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:ACTIVATE( 1039 )
   Called from: wintpv.prg => MAIN( 392 )
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: Migrar a Harbour - Errores del compilador
Posted: Wed Dec 17, 2014 07:13 AM
La l铆nea concreta en la que da error de ejecuci贸n es esta:

Code (fw): Select all Collapse
   METHOD Initiate( hDlg ) INLINE Super:Initiate( hDlg ), ::Default()
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Migrar a Harbour - Errores del compilador
Posted: Wed Dec 17, 2014 07:30 AM

C谩mbiala asi:

METHOD Initiate( hDlg ) INLINE ::Super:Initiate( hDlg ), ::Default()

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: Migrar a Harbour - Errores del compilador
Posted: Wed Dec 17, 2014 07:32 AM

Ha bastado con sustitur Super por ::Super y ya arranca bien el programa.
Parece que la migraci贸n a Harbour va bien. Vamos a probar el programa y si todo va bien.

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Migrar a Harbour - Errores del compilador
Posted: Wed Dec 17, 2014 03:26 PM

muy bien :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion