compilare solo xHarbour

Moderator: Enrico Maria Giordano

Post Reply
marzio
Posts: 129
Joined: Wed Apr 04, 2007 6:54 am

compilare solo xHarbour

Post 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
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: compilare solo xHarbour

Post 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

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
marzio
Posts: 129
Joined: Wed Apr 04, 2007 6:54 am

Re: compilare solo xHarbour

Post 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
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: compilare solo xHarbour

Post 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
marzio
Posts: 129
Joined: Wed Apr 04, 2007 6:54 am

Re: compilare solo xHarbour

Post 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
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: compilare solo xHarbour

Post 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

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
marzio
Posts: 129
Joined: Wed Apr 04, 2007 6:54 am

Re: compilare solo xHarbour

Post 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
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: compilare solo xHarbour

Post 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
marzio
Posts: 129
Joined: Wed Apr 04, 2007 6:54 am

Re: compilare solo xHarbour

Post 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.
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: compilare solo xHarbour

Post by Enrico Maria Giordano »

Questo è il batch che uso io per BCC 6.30 (controlla tutti i percorsi):

Code: Select all

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

-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

/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
marzio
Posts: 129
Joined: Wed Apr 04, 2007 6:54 am

Re: compilare solo xHarbour

Post by marzio »

ok così funziona.
grazie mille.
Post Reply