FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Como puedo compilar una classe?
Posts: 66
Joined: Thu Jan 03, 2013 06:13 PM
Como puedo compilar una classe?
Posted: Mon May 06, 2013 10:17 PM

Amigos del foro, quisiera recompilar fivewin.lib para xharbour versión 12.04, y la verdad, no sé como hacerlo, agradeceré toda ayuda.

Fivewin 12.04 + xHarbour 1.2.1 + BCC582



Nada como Fivewin, odio visual basic, visual studio y todas las porquerías visual.
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Como puedo compilar una classe?
Posted: Mon May 06, 2013 11:12 PM
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 66
Joined: Thu Jan 03, 2013 06:13 PM
Re: Como puedo compilar una classe?
Posted: Tue May 07, 2013 09:47 PM

Gracias Antonio, lamentablemente no me sirve de mucho, puesto que hice algunas modificaciones a la TXBrowse y este bat me compila todo, y aún así me deja fuera algunas funciones. Seguiré investigando.

Fivewin 12.04 + xHarbour 1.2.1 + BCC582



Nada como Fivewin, odio visual basic, visual studio y todas las porquerías visual.
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Como puedo compilar una classe?
Posted: Tue May 07, 2013 10:10 PM
Leo wrote:Gracias Antonio, lamentablemente no me sirve de mucho, puesto que hice algunas modificaciones a la TXBrowse y este bat me compila todo, y aún así me deja fuera algunas funciones. Seguiré investigando.


Leo, quizas pueda servirte esto:

\borland\bcc582\bin\TLIB FIVEWIN.LIB -+ TXBROWSE.OBJ (tu modulo)
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 66
Joined: Thu Jan 03, 2013 06:13 PM
Re: Como puedo compilar una classe?
Posted: Tue May 07, 2013 10:27 PM
Cristobal, gracias por responder, el tema es que tengo un bat que hace eso, el problema es que me deja algunas librerías fuera, y no sé como hacerlo.

Code (fw): Select all Collapse
@ECHO OFF

IF EXIST FIVEHX.LOG DEL FIVEHX.LOG

ECHO Classes  -TXBrowse
G:\xharbour\bin\harbour.exe xBrowse /n/a/v/w /ic:\fwh\include;c:\xharbour\include >> FIVEHX.LOG
if errorlevel 1 GOTO ERROR
ECHO -O2 -Ic:\xharbour\include -tW xBrowse.C > b32.bc
G:\bcc582\bin\bcc32.exe -tWM -DHB_GUI -DHB_API_MACROS -DHB_STACK_MACROS -DHB_FM_STATISTICS_OFF -d -a8 -OS -O2 -5 -c @b32.bc >> FIVEHX.LOG
G:\bcc582\bin\tlib.exe FiveHX -+XBrowse >> FIVEHX.LOG
Rem DEL Brush.C >> FIVEHX.LOG
Rem DEL Brush.OBJ >> FIVEHX.LOG

goto end

:error
echo error de compilacion >> FIVEHX.LOG
notepad FIVEHX.LOG

:end

PAUSE


La lib resultante pesa 3 kb menos que el original y el resultado es el siguiente:

Code (fw): Select all Collapse
Lines 1043, Functions/Procedures 33
Generating C source output to 'rmail.c'...
Done.
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
rmail.c:
Turbo Incremental Link 5.69 Copyright (c) 1997-2005 Borland
Error: Unresolved external '_HB_FUN_HB_HKEYAT' referenced from C:\FWH\LIB\FIVEHX
.LIB|XBrowse
Error: Unresolved external '_HB_FUN_HB_HVALUEAT' referenced from C:\FWH\LIB\FIVE
HX.LIB|XBrowse
Error: Unresolved external '_HB_FUN_HB_HCASEMATCH' referenced from C:\FWH\LIB\FI
VEHX.LIB|XBrowse
* Linking errors *
Fivewin 12.04 + xHarbour 1.2.1 + BCC582



Nada como Fivewin, odio visual basic, visual studio y todas las porquerías visual.
Posts: 408
Joined: Sun Aug 13, 2006 05:38 AM
Re: Como puedo compilar una classe?
Posted: Wed May 08, 2013 01:59 AM

Se me ocurre que copies los fuentes de fivewin a otra carpeta, y sobre esa copies los fuentes que modificaste, y ahí compiles como dice Antonio para compilar todo

Saludos

Quique
Posts: 66
Joined: Thu Jan 03, 2013 06:13 PM
Re: Como puedo compilar una classe?
Posted: Wed May 08, 2013 01:24 PM
Quique, gracias por la idea, creo que mejoró, sólo que el método de compilación que me entregó Antonio me arrojó el siguiente error:

Code (fw): Select all Collapse
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
xbrowse.c:

G:\FWH\NewLibs>for %f in (*.obj) do g:\bcc582\bin\tlib fivehx.lib -+ %f /0 /P32,
,

G:\FWH\NewLibs>g:\bcc582\bin\tlib fivehx.lib -+ btnbmp.obj /0 /P32,,
TLIB 4.5 Copyright (c) 1987, 1998 Borland International


Warning: library was too large for page size, rebuilt with page size 64
Warning: results are safe in file 'libtmp0c.t90'
DOS-reported error: Permission denied
renaming 'fivehx.lib' to 'fivehx.BAK'

G:\FWH\NewLibs>g:\bcc582\bin\tlib fivehx.lib -+ xbrowse.obj /0 /P32,,
TLIB 4.5 Copyright (c) 1987, 1998 Borland International


Warning: library was too large for page size, rebuilt with page size 64
Warning: results are safe in file 'libtmp00.p00'
DOS-reported error: Permission denied
renaming 'fivehx.lib' to 'fivehx.BAK'

G:\FWH\NewLibs>


Cambié el parametro /p32 por /p64 y compiló, pero me sigue arrojando este error al compilar con la nueva lib:

Code (fw): Select all Collapse
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
azteccode.c:
Borland Resource Compiler  Version 5.40
Copyright (c) 1990, 1999 Inprise Corporation.  All rights reserved.
Turbo Incremental Link 5.69 Copyright (c) 1997-2005 Borland
Error: Unresolved external '_png_set_longjmp_fn' referenced from C:\FWH\LIB\FIVEHC.LIB|FWPNG
Error: Unresolved external '_HB_FUN_HB_HKEYAT' referenced from C:\FWH\LIB\FIVEHX.LIB|xbrowse
Error: Unresolved external '_HB_FUN_HB_HVALUEAT' referenced from C:\FWH\LIB\FIVEHX.LIB|xbrowse
Error: Unresolved external '_HB_FUN_HB_HCASEMATCH' referenced from C:\FWH\LIB\FIVEHX.LIB|xbrowse
* Linking errors *
Fivewin 12.04 + xHarbour 1.2.1 + BCC582



Nada como Fivewin, odio visual basic, visual studio y todas las porquerías visual.
Posts: 408
Joined: Sun Aug 13, 2006 05:38 AM
Re: Como puedo compilar una classe?
Posted: Wed May 08, 2013 02:19 PM

Sin contar _png_set_longjmp_fn que NPI de donde sale esa función, las otras tres son funciones de harbour, así que el problema es que te falta enlazar las librerías correspondientes, no es problema de FW.

Saludos

Quique
Posts: 66
Joined: Thu Jan 03, 2013 06:13 PM
Re: Como puedo compilar una classe?
Posted: Wed May 08, 2013 02:37 PM

Gracias Quique, el tema es ¿Cómo enlazo las librerías que me faltan?

Fivewin 12.04 + xHarbour 1.2.1 + BCC582



Nada como Fivewin, odio visual basic, visual studio y todas las porquerías visual.
Posts: 408
Joined: Sun Aug 13, 2006 05:38 AM
Re: Como puedo compilar una classe?
Posted: Wed May 08, 2013 03:05 PM

Eso depende de que utilería utilices para compilar tu programa, tienes que agregarlas ahí.

Saludos

Quique
Posts: 66
Joined: Thu Jan 03, 2013 06:13 PM
Re: Como puedo compilar una classe?
Posted: Wed May 08, 2013 03:36 PM

simplemente una bat xharbour, bcc582

Fivewin 12.04 + xHarbour 1.2.1 + BCC582



Nada como Fivewin, odio visual basic, visual studio y todas las porquerías visual.
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Como puedo compilar una classe?
Posted: Wed May 08, 2013 03:41 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 408
Joined: Sun Aug 13, 2006 05:38 AM
Re: Como puedo compilar una classe?
Posted: Wed May 08, 2013 03:46 PM

Entonces, revisa dentro del bat en que parte se agregan las librerías y ahi es donde tienes que agregar las que faltan

Saludos

Quique
Posts: 66
Joined: Thu Jan 03, 2013 06:13 PM
Re: Como puedo compilar una classe?
Posted: Wed May 08, 2013 04:51 PM
Este es el bat:

Code (fw): Select all Collapse
for %%f in (*.prg) do g:\xharbour\bin\harbour %%f /n /ig:\fwh\include;g:\xharbour\include
for %%f in (*.c) do g:\bcc582\bin\bcc32 -c -Ig:\bcc582\include;g:\xharbour\include %%f
for %%f in (*.obj) do g:\bcc582\bin\tlib fivehx.lib -+ %%f /0 /P64,,
Fivewin 12.04 + xHarbour 1.2.1 + BCC582



Nada como Fivewin, odio visual basic, visual studio y todas las porquerías visual.
Posts: 408
Joined: Sun Aug 13, 2006 05:38 AM
Re: Como puedo compilar una classe?
Posted: Wed May 08, 2013 04:59 PM

Según entiendo, los Unresolved external se dan cuando compilas el ejecutable, pero en este caso se trata de una librería, pero tal vez Antonio o algún experto en el tema pueda dar otra respuesta

Saludos

Quique