Page 2 of 2

PostPosted: Thu Sep 18, 2008 4:44 pm
by Antonio Linares
Rafa,

Muchas gracias! :-)

Ha bajado de 1.700.000 a 1.300.000

Bien! :-)

PostPosted: Fri Sep 19, 2008 7:58 pm
by Carlos Mora
Felicitaciones! Muy sabia decision!
Para reducir el tamaño un pelin mas, habria que chequear cual es el valor por defecto de la alineación de bytes, bytealign, que seguro hace alguna diferencia en cuanto al tamaño.

Un saludo,
Carlos.

PostPosted: Fri Sep 19, 2008 11:26 pm
by Armando Picon
Antonio

Utilizando el Harbour para MInGW desde Sourceforge y el MinGW Full he podido compilar sin ningun problema tu prueba.

Este es el bat que utilice para hacerlo

@ECHO OFF
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ Harbour for MinGW Harbour development power ³Ü
ECHO ³ Batch adaptado del foro FWH ³Û
ECHO ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
ECHO ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

Set DirHb=c:\MinGW\Hb101
Set DirMg=c:\mingw

ECHO Compilando con Harbour
%DirHb%\Bin\Harbour.exe %1.prg /n > clip.log
@type clip.log

IF ERRORLEVEL 1 PAUSE
IF ERRORLEVEL 1 GOTO EXIT

ECHO Compilando y Enlazando con GCC
%DirMg%\bin\gcc -c -o%1.o -I%DirHb%\include %1.c
%DirMg%\bin\gcc %1.o -o%1.exe -L%DirHb%\lib -Wl,--start-group -lhbcommon -lhbvm -lhbrtl -lhbrdd -lhbmacro -lhblang -lhbcpage -lhbpp -lrddntx -lrddcdx -lrddfpt -lhbsix -lhbusrrdd -lhbct -lgtwin -lhbdebug -Wl,--end-group

IF EXIST %1.exe %1.exe

:EXIT

Puesto que no soy usuario de la version 8.08 y por tanto no califico para beta tester, alguna sugerencia para actualizar el codigo que dispongo?

Antonio Linares wrote:Ya tenemos una primera versión de FWH construido con MinGW :-)

Y está funcionando correctamente!!!

Se les va a proporcionar como versión beta a los usuarios del recien publicado FWH 8.09 :-)

PostPosted: Sat Sep 20, 2008 7:49 am
by Antonio Linares
Armando,

>
Puesto que no soy usuario de la version 8.08 y por tanto no califico para beta tester, alguna sugerencia para actualizar el codigo que dispongo?
>

El problema es que hay que recompilar todo y con cambios en módulos en C. No se me ocurre la forma de hacerlo para la versión 2.4 de FWH :-(

De todas formas, como ejercicio que te gustará, prueba a construir esto :-)
Code: Select all  Expand view
function Main()

   MsgInfo( "Hola mundo!" )

return nil

#pragma BEGINDUMP

#include <hbapi.h>
#include <windows.h>

HB_FUNC( MSGINFO )
{
   MessageBox( 0, hb_parc( 1 ), "Información", MB_ICONINFORMATION );
}

#pragma ENDDUMP

PostPosted: Mon Sep 22, 2008 3:52 pm
by Armando Picon
Antonio

Podrías indicarme cómo hacer para crear las librerías bajo MinGW, estoy investigando este tema. Puedo crear los ejecutables desde programas simples con Harbour para consola, pero necesito recrear mis librerias que manejan mis DBFs.

Saludos

Armando

PostPosted: Mon Sep 22, 2008 7:33 pm
by Antonio Linares
Armando,

Si te refieres a construir librerías, esta es la forma de hacerlo:

c:\mingw\bin\ar rc milibreria.a modulo.o

Igual que se hace en Linux ó en Mac, usando ar

PostPosted: Mon Sep 22, 2008 8:16 pm
by Armando Picon
Quieres decir que si pongo

c:\mingw\bin\ar rc milibreria.a modulo.o modulo2.o modulo3.o ....
Voy a generar mis Libs?

Y para generar el conjunto de modulos sin enlazarlos y formar la libreria, con la sentencia anterior? Deberia usar esto, para cada uno?:

%DirMg%\bin\gcc -c -o%1.o -I%DirHb%\include %1.c

Antonio Linares wrote:Armando,

Si te refieres a construir librerías, esta es la forma de hacerlo:

c:\mingw\bin\ar rc milibreria.a modulo.o

Igual que se hace en Linux ó en Mac, usando ar

PostPosted: Mon Sep 22, 2008 8:42 pm
by Antonio Linares
Armando,

Si, asi es :-)

PostPosted: Mon Sep 22, 2008 8:55 pm
by Armando Picon
Gracias Antonio...

Abusando de tu amabilidad; por "casualidad" no tendrás por allí un archivito bat que pudiera contener la serie de nombres, como el antiguo CLP para compilar y enlazar, sin tener que estar escribiendo la misma sentencia para cada uno de los prg?

Te comento que he tomado el reto de convertir mi codigo C de borland para MinGW, por ahora voy a documentarme con las diferencias entre ambos... Supongo que no habrá problemas en la devolución de datos entre el Gcc y el harbour, verdad?

Antonio Linares wrote:Armando,

Si, asi es :-)

PostPosted: Mon Sep 22, 2008 9:43 pm
by Antonio Linares
Armando,

Puedes facilmente adaptar este:

for %%f in (*.prg) do c:\harbour\bin\harbour %%f /n /ic:\fwh\include;c:\harbour\include
for %%f in (*.c) do c:\bcc55\bin\bcc32 -c -Ic:\bcc55\include;c:\harbour\include %%f
for %%f in (*.obj) do c:\bcc55\bin\tlib fiveh.lib -+ %%f /0 /P32,,

> Supongo que no habrá problemas en la devolución de datos entre el Gcc y el harbour, verdad?

Ningun problema. El "sistema extendido" ("extend system") está implementado integramente en C.

Algo importante que tienes que tener en cuenta: No puedes "mezclar" OBJ de Borland con .O de MinGW gcc.

PostPosted: Mon Sep 22, 2008 10:23 pm
by Armando Picon
Supongo que esto es un bat; estoy sorprendido por las instrucciones, no recuerdo haberlos visto en mi época de Clipper-DOS (debo haber sido mal programador)

¿Qué le envio o como lo hago funcionar? o solamente lo invoco colocandome en la carpeta donde están los prgs, así sin más ni más?

for %%f in (*.prg) do c:\harbour\bin\harbour %%f /n /ic:\fwh\include;c:\harbour\include
for %%f in (*.c) do c:\bcc55\bin\bcc32 -c -Ic:\bcc55\include;c:\harbour\include %%f
for %%f in (*.obj) do c:\bcc55\bin\tlib fiveh.lib -+ %%f /0 /P32,,

>>Algo importante que tienes que tener en cuenta: No puedes "mezclar" OBJ de Borland con .O de MinGW gcc.

Esto si ya lo sabía...!

PostPosted: Tue Sep 23, 2008 1:10 am
by Antonio Linares
Armando,

Si, es un bat. Tienes que ejecutarlo desde donde tengas tus PRGs.

Cambia la llamada a bcc32 por gcc, y la llamada a tlib por ar, como hemos comentado anteriormente :-)

PostPosted: Tue Sep 23, 2008 1:19 am
by Armando Picon
Oki

Thanks very much

Antonio Linares wrote:Armando,

Si, es un bat. Tienes que ejecutarlo desde donde tengas tus PRGs.

Cambia la llamada a bcc32 por gcc, y la llamada a tlib por ar, como hemos comentado anteriormente :-)