compilare solo xHarbour

Moderator: Enrico Maria Giordano

compilare solo xHarbour

Postby marzio » Mon Dec 06, 2010 8:31 am

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

Re: compilare solo xHarbour

Postby Enrico Maria Giordano » Tue Dec 07, 2010 8:38 am

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

Re: compilare solo xHarbour

Postby marzio » Tue Dec 07, 2010 10:02 am

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

Re: compilare solo xHarbour

Postby Enrico Maria Giordano » Tue Dec 07, 2010 10:34 am

Negli switch del compilatore C devi sostituire /W con /WC (che sta per console) e in quelli del linker /aa con /ap.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8718
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: compilare solo xHarbour

Postby marzio » Tue Dec 07, 2010 11:12 am

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

Re: compilare solo xHarbour

Postby Enrico Maria Giordano » Tue Dec 07, 2010 11:22 am

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

Re: compilare solo xHarbour

Postby marzio » Tue Dec 07, 2010 11:32 am

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

Re: compilare solo xHarbour

Postby Enrico Maria Giordano » Tue Dec 07, 2010 11:35 am

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

Re: compilare solo xHarbour

Postby marzio » Tue Dec 07, 2010 11:42 am

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

Re: compilare solo xHarbour

Postby Enrico Maria Giordano » Tue Dec 07, 2010 12:06 pm

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

Code: Select all  Expand view  RUN
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  RUN
-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  RUN
/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
User avatar
Enrico Maria Giordano
 
Posts: 8718
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: compilare solo xHarbour

Postby marzio » Tue Dec 07, 2010 1:34 pm

ok così funziona.
grazie mille.
marzio
 
Posts: 129
Joined: Wed Apr 04, 2007 6:54 am


Return to All products support

Who is online

Users browsing this forum: No registered users and 6 guests