Como puedo compilar una classe?

Como puedo compilar una classe?

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

Re: Como puedo compilar una classe?

Postby Antonio Linares » Mon May 06, 2013 11:12 pm

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41408
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Como puedo compilar una classe?

Postby Leo » Tue May 07, 2013 9: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.
Leo
 
Posts: 66
Joined: Thu Jan 03, 2013 6:13 pm

Re: Como puedo compilar una classe?

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

Re: Como puedo compilar una classe?

Postby Leo » 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: Select all  Expand view
@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  Expand view
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.
Leo
 
Posts: 66
Joined: Thu Jan 03, 2013 6:13 pm

Re: Como puedo compilar una classe?

Postby quique » Wed May 08, 2013 1: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
User avatar
quique
 
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am

Re: Como puedo compilar una classe?

Postby Leo » Wed May 08, 2013 1: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: Select all  Expand view
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  Expand view
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.
Leo
 
Posts: 66
Joined: Thu Jan 03, 2013 6:13 pm

Re: Como puedo compilar una classe?

Postby quique » Wed May 08, 2013 2: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
User avatar
quique
 
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am

Re: Como puedo compilar una classe?

Postby Leo » Wed May 08, 2013 2: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.
Leo
 
Posts: 66
Joined: Thu Jan 03, 2013 6:13 pm

Re: Como puedo compilar una classe?

Postby quique » Wed May 08, 2013 3:05 pm

Eso depende de que utilería utilices para compilar tu programa, tienes que agregarlas ahí.
Saludos
Quique
User avatar
quique
 
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am

Re: Como puedo compilar una classe?

Postby Leo » Wed May 08, 2013 3: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.
Leo
 
Posts: 66
Joined: Thu Jan 03, 2013 6:13 pm

Re: Como puedo compilar una classe?

Postby karinha » Wed May 08, 2013 3:41 pm

Last edited by karinha on Wed May 08, 2013 3:47 pm, edited 1 time in total.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7352
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Como puedo compilar una classe?

Postby quique » Wed May 08, 2013 3: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
User avatar
quique
 
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am

Re: Como puedo compilar una classe?

Postby Leo » Wed May 08, 2013 4:51 pm

Este es el bat:

Code: Select all  Expand view
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.
Leo
 
Posts: 66
Joined: Thu Jan 03, 2013 6:13 pm

Re: Como puedo compilar una classe?

Postby quique » Wed May 08, 2013 4: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
User avatar
quique
 
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 40 guests