Migrar a Harbour - Errores del compilador
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Migrar a Harbour - Errores del compilador
Comprueba que tengas stdarg.h en c:\bcc582\include
Re: Migrar a Harbour - Errores del compilador
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"
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"
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Migrar a Harbour - Errores del compilador
Está en ese directorio.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Migrar a Harbour - Errores del compilador
Pues debería encontrarlo...
te da algun otro error antes de ese ?
te da algun otro error antes de ese ?
Re: Migrar a Harbour - Errores del compilador
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.
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.
Re: Migrar a Harbour - Errores del compilador
Apunto el mensaje completo que arroja el compilador:
c:\harbour\include\hbdefs.h(52) Error F0029 can´t open #include file 'stdarg.h'
c:\harbour\include\hbdefs.h(52) Error F0029 can´t open #include file 'stdarg.h'
Re: Migrar a Harbour - Errores del compilador
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:
Y este es el buildh.bat que utilizo:
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.
Esto da el error que he reseñado más arriba con stdarg.h:
Code: Select all
#include "FiveWin.ch"
#include <hbapiitm.h> //Necesario para HARBOUR
FUNCTION Main()
? "hola"
RETURN NIL
Code: Select all
@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
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Migrar a Harbour - Errores del compilador
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 ?
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 ?
Re: Migrar a Harbour - Errores del compilador
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.
Gracias Antonio.
Re: Migrar a Harbour - Errores del compilador
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:
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: Select all
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 )
Re: Migrar a Harbour - Errores del compilador
La línea concreta en la que da error de ejecución es esta:
Code: Select all
METHOD Initiate( hDlg ) INLINE Super:Initiate( hDlg ), ::Default()
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Migrar a Harbour - Errores del compilador
Cámbiala asi:
METHOD Initiate( hDlg ) INLINE ::Super:Initiate( hDlg ), ::Default()
METHOD Initiate( hDlg ) INLINE ::Super:Initiate( hDlg ), ::Default()
Re: Migrar a Harbour - Errores del compilador
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.
Parece que la migración a Harbour va bien. Vamos a probar el programa y si todo va bien.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact: