Page 1 of 1

Problema al linkear sistema en harbour por primera vez

Posted: Thu Mar 16, 2006 9:57 pm
by rbecares
Hola a todos.

Es la primera compilacion de nuestro sistema con harbour y tengo el siguiente problema.

Al compilar el ejemplo adir.prg del fwh con el comando buildh.bat me genera un ejecutable de 1.028.096 bytes.

tenemos generadas 3 librerias de nuestro sistema de gestion denominadas:

e:\evo1\exe32\logicl32.lib +
e:\evo1\exe32\evog32.lib +
e:\evo1\exe32\logiex32.lib +

que ocupan 1.240 kbytes.

todos los objetos fueron compilados con el rmake con la siguiente sintaxis.
Txls.obj : Txls.prg
c:\harbour\bin\harbour $< /n /ic:\fwh\include;c:\harbour\include /w /p
c:\bcc55\bin\bcc32 -M -c -O2 -Ic:\harbour\include Txls.c
c:\bcc55\bin\tlib logicl32 -+$@ ,,

Para linkear utilizamos:

c:\bcc55\bin\ilink32 -Gn -aa -Tpe -s @b32.bc

y el archivo b32.bc se encuentra mas abajo.

*************************
El problema que tenemos es que el ejecutable generado es de : 1.084.928
*************************

No le encuentro la vuelta. Alguien me puede ayudar?

saludossss


ARCHIVO b32.bc
===========
c:\bcc55\lib\c0w32.obj +
, +
evo32.exe, +
evo32.map, +
c:\fwh\lib\FiveH.lib c:\fwh\lib\FiveHC.lib +
c:\harbour\lib\rtl.lib +
c:\harbour\lib\vm.lib +
c:\harbour\lib\gtwin.lib +
c:\harbour\lib\lang.lib +
c:\harbour\lib\macro.lib +
c:\harbour\lib\rdd.lib +
c:\harbour\lib\dbfntx.lib +
c:\harbour\lib\dbfcdx.lib +
c:\harbour\lib\dbffpt.lib +
c:\harbour\lib\hbsix.lib +
c:\harbour\lib\debug.lib +
c:\harbour\lib\common.lib +
c:\harbour\lib\pp.lib +
c:\harbour\lib\codepage.lib +
e:\evo1\exe32\logicl32.lib +
e:\evo1\exe32\evog32.lib +
e:\evo1\exe32\logiex32.lib +
c:\bcc55\lib\cw32.lib +
c:\bcc55\lib\import32.lib +
c:\bcc55\lib\psdk\odbc32.lib +
c:\bcc55\lib\psdk\nddeapi.lib +
c:\bcc55\lib\psdk\iphlpapi.lib +
c:\bcc55\lib\psdk\rasapi32.lib,

Posted: Thu Mar 16, 2006 10:03 pm
by Antonio Linares
Ricardo,

El tamaño es correcto. Cual es el problema ó el error ?

Posted: Thu Mar 16, 2006 11:27 pm
by rbecares
Antonio:

El programa no arranca ( lo cual hace bien en fivewin/clipper ), sino que muestra una ventana "alert" que cuando la cerramos el programa se cierra.

Un tema para ver con el tamaño es que si linkeamos solamente los libs de fivewin, y harbour, y bcc da casi el mismo tamaño que si incluímos 3 libs que forman nuestro sistema, las cuales por sí solas suman aprox 1 mega, es decir sin los libs del sistema el exe tiene un mega aprox, con nuestros libs incluídos el exe mantiene casi el tamaño, sólo suma 40kb., por esto dirigimos nuestra inquietud hacia el tamaño.

Un último dato: nosotros incluímos todos los objs del sistema en estas 3 libs, no dejamos ningún obj ( ni siquiera el de arranque del sistema ) afuera, esto está mal? ( la función main() está incluída dentro de una de estas 3 libs ).

Espero tu respuesta.
Saludos.
Ricardo.-

Posted: Thu Mar 16, 2006 11:46 pm
by Antonio Linares
Ricardo,

El OBJ que contiene Main() no lo pongais dentro de una librería, y enlazadlo como OBJ principal.

El tamaño se debe a la máquina virtual de harbour que se enlaza siempre, y en realidad la aplicación aumenta solo un poco su tamaño, aunque crece conforme crece la aplicación.