Page 1 of 1

compilare solo xHarbour

PostPosted: Mon Dec 06, 2010 8:31 am
by marzio
salve a tutti,
vorrei compilare un vecchio programma clipper con xHarbour (borland 5.5)
per farlo funzionare a 32 bit in modo testo.
mi potete postare un file make per questo scopo? (flag di memoria, librerie, ecc.)
in testa al prg ci vanno degli include extra?

grazie in anticipo,
marzio

Re: compilare solo xHarbour

PostPosted: Tue Dec 07, 2010 8:38 am
by Enrico Maria Giordano
marzio wrote:salve a tutti,
vorrei compilare un vecchio programma clipper con xHarbour (borland 5.5)
per farlo funzionare a 32 bit in modo testo.
mi potete postare un file make per questo scopo? (flag di memoria,


Se intendi gli switch di compilazione, sono gli stessi del Clipper.

marzio wrote:librerie, ecc.)


Io uso queste:

Code: Select all  Expand view
rtl.lib +
vm.lib +
common.lib +
lang.lib +
gtwin.lib +
rdd.lib +
usrrdd.lib +
dbffpt.lib +
dbfntx.lib +
dbfcdx.lib +
hbsix.lib +
macro.lib +
pcrepos.lib +
hbodbc.lib +
hbzip.lib +
zlib.lib +
ct.lib +
tip.lib +
import32.lib +
cw32.lib +
odbc32.lib +
wininet.lib +
iphlpapi.lib


marzio wrote:in testa al prg ci vanno degli include extra?


No.

EMG

Re: compilare solo xHarbour

PostPosted: Tue Dec 07, 2010 10:02 am
by marzio
grazie Enrico.

però lanciando l'exe ottengo solo una finestra che si chiude subito
senza vedere nulla, anche con questo programmino minimale.

function main()

QOUT( Version() )
QOUT( '-------------------------------------------------------------' )
QOUT( '' )

Inkey(0)

return NIL

Re: compilare solo xHarbour

PostPosted: Tue Dec 07, 2010 10:34 am
by Enrico Maria Giordano
Negli switch del compilatore C devi sostituire /W con /WC (che sta per console) e in quelli del linker /aa con /ap.

EMG

Re: compilare solo xHarbour

PostPosted: Tue Dec 07, 2010 11:12 am
by marzio
ho aggiunto /WC al complier non so se è il posto giusto perché non c'era /W, ho aggiunto /ap al linker, non c'era /aa.
questo il file bat che uso, sicuramente c'è qualcosa che non va:

@echo off
DEL discorsi.EXE
DEL *.OBJ
DEL *.C

set HB_INSTALL=d:\winclip\xharbour
set BCC_DIR=d:\winclip\bcc55

%HB_INSTALL%\bin\harbour discorsi -i%HB_INSTALL%\include > log

echo -O2 -tW -M -DHB_API_MACROS -DHB_STACK_MACROS -DHB_OS_WIN_32 -DHB_FM_STATISTICS_OFF > b32.bc
echo -I%HB_INSTALL%\include;%BCC_DIR%\include >> b32.bc

echo -c discorsi.c >> b32.bc

%BCC_DIR%\BIN\bcc32 /WC @b32.bc

echo %BCC_DIR%\lib\c0w32.obj + > b32.bc

echo discorsi.obj + >> b32.bc

echo , + >> b32.bc
echo %discorsi.EXE, + >> b32.bc
echo %discorsi.map, + >> b32.bc

echo %HB_INSTALL%\lib\rtl.lib + >> b32.bc
echo %HB_INSTALL%\lib\vm.lib + >> b32.bc
echo %HB_INSTALL%\lib\common.lib + >> b32.bc
echo %HB_INSTALL%\lib\lang.lib + >> b32.bc
echo %HB_INSTALL%\lib\gtwin.lib + >> b32.bc
ECHO %HB_INSTALL%\lib\rdd.lib + >> b32.bc
ECHO %HB_INSTALL%\lib\usrrdd.lib + >> b32.bc
ECHO %HB_INSTALL%\lib\dbffpt.lib + >> b32.bc
ECHO %HB_INSTALL%\lib\dbfntx.lib + >> b32.bc
ECHO %HB_INSTALL%\lib\dbfcdx.lib + >> b32.bc
ECHO %HB_INSTALL%\lib\hbsix.lib + >> b32.bc
echo %HB_INSTALL%\lib\macro.lib + >> b32.bc
echo %HB_INSTALL%\lib\pcrepos.lib + >> b32.bc
echo %HB_INSTALL%\lib\hbodbc.lib + >> b32.bc
echo %HB_INSTALL%\lib\hbzip.lib + >> b32.bc
echo %HB_INSTALL%\lib\zlib.lib + >> b32.bc
echo %HB_INSTALL%\lib\ct.lib + >> b32.bc
echo %HB_INSTALL%\lib\tip.lib + >> b32.bc

ECHO %bcc_dir%\lib\cw32.lib + >> b32.bc
ECHO %bcc_dir%\lib\import32.lib + >> b32.bc
ECHO %bcc_dir%\lib\PSDK\odbc32.lib + >> b32.bc
ECHO %bcc_dir%\lib\PSDK\wininet.lib + >> b32.bc
ECHO %bcc_dir%\lib\PSDK\iphlpapi.lib + >> b32.bc

%BCC_DIR%\bin\ilink32 -ap -Gn -Tpe -L%HB_INSTALL%\lib\;%BCC_DIR%\lib\ -s @b32.bc

Re: compilare solo xHarbour

PostPosted: Tue Dec 07, 2010 11:22 am
by Enrico Maria Giordano
marzio wrote:ho aggiunto /WC al complier non so se è il posto giusto perché non c'era /W


Sì, che c'era:

Code: Select all  Expand view
echo -O2 -tW -M -DHB_API_MACROS -DHB_STACK_MACROS -DHB_OS_WIN_32 -DHB_FM_STATISTICS_OFF > b32.bc


-tW equivale a -W. Lancia bcc32 a vuoto e otterrai tutti gli switch disponibili con relativa funzione.

marzio wrote:ho aggiunto /ap al linker, non c'era /aa.


Forse c'è un default ma mi sembra strano.

marzio wrote:questo il file bat che uso, sicuramente c'è qualcosa che non va:

echo %BCC_DIR%\lib\c0w32.obj + > b32.bc


c0w32 lo devi sostituire con c0x32.

EMG

Re: compilare solo xHarbour

PostPosted: Tue Dec 07, 2010 11:32 am
by marzio
purtroppo continua a non funzionare...

@echo off
DEL discorsi.EXE
DEL *.OBJ
DEL *.C

set HB_INSTALL=d:\winclip\xharbour
set BCC_DIR=d:\winclip\bcc55

%HB_INSTALL%\bin\harbour discorsi -i%HB_INSTALL%\include > log

rem provati entrambi:
rem echo -O2 -WC -M -DHB_API_MACROS -DHB_STACK_MACROS -DHB_OS_WIN_32 -DHB_FM_STATISTICS_OFF > b32.bc
echo -O2 -tWC -M -DHB_API_MACROS -DHB_STACK_MACROS -DHB_OS_WIN_32 -DHB_FM_STATISTICS_OFF > b32.bc

echo -I%HB_INSTALL%\include;%BCC_DIR%\include >> b32.bc

echo -c discorsi.c >> b32.bc

%BCC_DIR%\BIN\bcc32 @b32.bc

echo %BCC_DIR%\lib\c0x32.obj + > b32.bc

echo discorsi.obj + >> b32.bc

echo , + >> b32.bc
echo %discorsi.EXE, + >> b32.bc
echo %discorsi.map, + >> b32.bc
rem echo %BCC_DIR%\lib\ws2_32.lib + >> b32.bc

echo %HB_INSTALL%\lib\rtl.lib + >> b32.bc
echo %HB_INSTALL%\lib\vm.lib + >> b32.bc
echo %HB_INSTALL%\lib\common.lib + >> b32.bc
echo %HB_INSTALL%\lib\lang.lib + >> b32.bc
echo %HB_INSTALL%\lib\gtwin.lib + >> b32.bc
ECHO %HB_INSTALL%\lib\rdd.lib + >> b32.bc
ECHO %HB_INSTALL%\lib\usrrdd.lib + >> b32.bc
ECHO %HB_INSTALL%\lib\dbffpt.lib + >> b32.bc
ECHO %HB_INSTALL%\lib\dbfntx.lib + >> b32.bc
ECHO %HB_INSTALL%\lib\dbfcdx.lib + >> b32.bc
ECHO %HB_INSTALL%\lib\hbsix.lib + >> b32.bc
echo %HB_INSTALL%\lib\macro.lib + >> b32.bc
echo %HB_INSTALL%\lib\pcrepos.lib + >> b32.bc
echo %HB_INSTALL%\lib\hbodbc.lib + >> b32.bc
echo %HB_INSTALL%\lib\hbzip.lib + >> b32.bc
echo %HB_INSTALL%\lib\zlib.lib + >> b32.bc
echo %HB_INSTALL%\lib\ct.lib + >> b32.bc
echo %HB_INSTALL%\lib\tip.lib + >> b32.bc

ECHO %bcc_dir%\lib\cw32.lib + >> b32.bc
ECHO %bcc_dir%\lib\import32.lib + >> b32.bc
ECHO %bcc_dir%\lib\PSDK\odbc32.lib + >> b32.bc
ECHO %bcc_dir%\lib\PSDK\wininet.lib + >> b32.bc
ECHO %bcc_dir%\lib\PSDK\iphlpapi.lib + >> b32.bc


%BCC_DIR%\bin\ilink32 -ap -Gn -Tpe -L%HB_INSTALL%\lib\;%BCC_DIR%\lib\ -s @b32.bc

Re: compilare solo xHarbour

PostPosted: Tue Dec 07, 2010 11:35 am
by Enrico Maria Giordano
marzio wrote:purtroppo continua a non funzionare...

echo -O2 -tWC -M -DHB_API_MACROS -DHB_STACK_MACROS -DHB_OS_WIN_32 -DHB_FM_STATISTICS_OFF > b32.bc


Ma dove hai letto che esiste -tWC. Ti ho detto dove guardare la lista degli switch. Guardatela, per favore. Comunque è -tC.

EMG

Re: compilare solo xHarbour

PostPosted: Tue Dec 07, 2010 11:42 am
by marzio
ho guardato la lista dei flag ma non ci ho capito molto ho visto -tWxxx ma non -tC.
ho messo -tC, ma fa lo stesso problema.

Re: compilare solo xHarbour

PostPosted: Tue Dec 07, 2010 12:06 pm
by Enrico Maria Giordano
Questo è il batch che uso io per BCC 6.30 (controlla tutti i percorsi):

Code: Select all  Expand view
SET HARBOURCMD=/a /es2 /gc0 /m /n /q /w2
SET INCLUDE=e:\xharbour\include;e:\bcc\include
IF EXIST %1.prg e:\xharbour\harbour %1
SET HARBOURCMD=
SET INCLUDE=
IF EXIST %1.c e:\bcc\bin\bcc32 +e:\xharbour\xharbour.cfg -c %1.c
IF EXIST %1.obj e:\bcc\bin\ilink32 c0x32 %1, %1.EXE @e:\xharbour\xharbour.rsp
IF ERRORLEVEL 1 PAUSE
IF NOT ERRORLEVEL 1 IF EXIST %1.exe %1
IF EXIST %1.c DEL %1.c
IF EXIST %1.obj DEL %1.obj
IF EXIST %1.tds DEL %1.tds


XHARBOUR.CFG:

Code: Select all  Expand view
-6
-a4
-DHB_GUI
-DHB_INCLUDE_WINEXCHANDLER
-DHB_NO_PROFILER
-DHB_NO_TRACE
-DHB_WIN32_IO
-d
-g0
-Ie:\xharbour\include;e:\bcc\include;e:\bcc\include\windows\crtl;e:\bcc\include\windows\sdk;e:\bcc\include\dinkumware
-k-
-O
-O1
-O2
-OS
-Ob
-Oc
-Ov
-v-
-WC
-w


XHARBOUR.RSP:

Code: Select all  Expand view
/ap +
/Gn +
/Le:\xharbour\lib;e:\bcc\lib;e:\bcc\lib\psdk +
/x

rtl.lib +
vm.lib +
common.lib +
lang.lib +
gtwin.lib +
rdd.lib +
usrrdd.lib +
dbffpt.lib +
dbfntx.lib +
dbfcdx.lib +
hbsix.lib +
macro.lib +
pcrepos.lib +
hbodbc.lib +
hbzip.lib +
zlib.lib +
ct.lib +
tip.lib +
import32.lib +
cw32.lib +
odbc32.lib +
wininet.lib +
iphlpapi.lib


EMG

Re: compilare solo xHarbour

PostPosted: Tue Dec 07, 2010 1:34 pm
by marzio
ok così funziona.
grazie mille.