Como puedo compilar una classe?

Leo
Posts: 66
Joined: Thu Jan 03, 2013 6:13 pm

Como puedo compilar una classe?

Post by Leo »

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.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Como puedo compilar una classe?

Post by Antonio Linares »

regards, saludos

Antonio Linares
www.fivetechsoft.com
Leo
Posts: 66
Joined: Thu Jan 03, 2013 6:13 pm

Re: Como puedo compilar una classe?

Post by Leo »

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.
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Como puedo compilar una classe?

Post by cnavarro »

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)
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Leo
Posts: 66
Joined: Thu Jan 03, 2013 6:13 pm

Re: Como puedo compilar una classe?

Post by Leo »

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: Select all

@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: Select all

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.
User avatar
quique
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am
Contact:

Re: Como puedo compilar una classe?

Post by quique »

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
Leo
Posts: 66
Joined: Thu Jan 03, 2013 6:13 pm

Re: Como puedo compilar una classe?

Post by Leo »

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: Select all

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: Select all

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.
User avatar
quique
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am
Contact:

Re: Como puedo compilar una classe?

Post by quique »

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
Leo
Posts: 66
Joined: Thu Jan 03, 2013 6:13 pm

Re: Como puedo compilar una classe?

Post by Leo »

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.
User avatar
quique
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am
Contact:

Re: Como puedo compilar una classe?

Post by quique »

Eso depende de que utilería utilices para compilar tu programa, tienes que agregarlas ahí.
Saludos
Quique
Leo
Posts: 66
Joined: Thu Jan 03, 2013 6:13 pm

Re: Como puedo compilar una classe?

Post by Leo »

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.
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Como puedo compilar una classe?

Post by karinha »

Last edited by karinha on Wed May 08, 2013 3:47 pm, edited 1 time in total.
João Santos - São Paulo - Brasil
User avatar
quique
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am
Contact:

Re: Como puedo compilar una classe?

Post by quique »

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
Leo
Posts: 66
Joined: Thu Jan 03, 2013 6:13 pm

Re: Como puedo compilar una classe?

Post by Leo »

Este es el bat:

Code: Select all

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.
User avatar
quique
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am
Contact:

Re: Como puedo compilar una classe?

Post by quique »

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
Post Reply