FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index All products support compilare solo xHarbour
Posts: 193
Joined: Wed Apr 04, 2007 06:54 AM
compilare solo xHarbour
Posted: Mon Dec 06, 2010 08: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

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: compilare solo xHarbour
Posted: Tue Dec 07, 2010 08: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 (fw): Select all Collapse
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
Posts: 193
Joined: Wed Apr 04, 2007 06:54 AM
Re: compilare solo xHarbour
Posted: 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

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: compilare solo xHarbour
Posted: 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

Posts: 193
Joined: Wed Apr 04, 2007 06:54 AM
Re: compilare solo xHarbour
Posted: 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

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: compilare solo xHarbour
Posted: 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 (fw): Select all Collapse
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
Posts: 193
Joined: Wed Apr 04, 2007 06:54 AM
Re: compilare solo xHarbour
Posted: 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

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: compilare solo xHarbour
Posted: 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
Posts: 193
Joined: Wed Apr 04, 2007 06:54 AM
Re: compilare solo xHarbour
Posted: 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.

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: compilare solo xHarbour
Posted: Tue Dec 07, 2010 12:06 PM
Questo è il batch che uso io per BCC 6.30 (controlla tutti i percorsi):

Code (fw): Select all Collapse
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 (fw): Select all Collapse
-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 (fw): Select all Collapse
/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
Posts: 193
Joined: Wed Apr 04, 2007 06:54 AM
Re: compilare solo xHarbour
Posted: Tue Dec 07, 2010 01:34 PM

ok così funziona.
grazie mille.

Continue the discussion