Pozdrav svima,
evo me kako već par dana pokušavam ući u xharbour svijet

. U Clipperu programiram već preko 20 godina i sam sebi idem na živce kako nešto već nisam prije probao
Naravno odmah imam problema.
Način na koji sam ja do sada radio u clipperu, a koji se tiče compiliranja i linkanja je bio slijedeći (ukratko):
Imao sam .prg fileove (dosta njih), compilirao bi ih svakog za sebe (modularno) "clipper prvi.prg -m", i kasnije .obj fileove linkao ili rtlinkom ili blinkerom preko @link.lnk datoteke u kojoj su bili navedeni obj-ovi te lib-ovi i dobijao exe datoteku.
Sada bi to htio prenijeti na ovu varijantu xharbour (za sada još uvijek u konzolnom načinu ali w32 bitnom modu)
napravio sam za početak mali prg "hello.prg"
CLEAR SCREEN
@ 0,0 SAY "Hello World!"
INKEY(0)
RETURN
I pokušao kompajlirati sa xharboure .bat procedurama koje su tamo nakon instalacije.
Nakon podešavanja setova za pronalaženje librarija proradilo. Dobio sam .exe koji kad pokrenem radi u konzoli.
Sad sam želio iz tog prg-a pozivati procedure iz drugih prg-ova pa sam jednostavno napravio sljedeće:
hello.prg
======
CLEAR SCREEN
@ 0,0 SAY "Hello World!"
INKEY(0)
DO HELLO1
RETURN
hello1.prg
=======
CLEAR SCREEN
@ 5,0 SAY "Hello again!"
INKEY(0)
RETURN
Opet propustio proceduru i radilo je i to.
Kako moji programi imaju podosta .prg datoteka, tako sam želio odvojiti te procese prevođenja u c kompajliranja i linkanja.
Proučio sam priložene bat datoteke i došao do zaključka da rade na slijedeći način:
Prvi korak - Prevođenje u c
stoga sam napravio prvi bat file xh.bat koji mi određeni name.prg prevede u name.c i
napravi i name.ppo
xh.bat
=====
c:\xharbour\bin\harbour %1.prg -q0 -gc -ic:\xharbour\include -p -w
Drugi korak - kompajliranje
u priloženim batovima je kompajliranje i linkanje sve u jednoj komandi preko bcc32 kompajlera. Želio sam to razdvojiti u dvije komande, jedna za kompajliranje pojedinog modula (nor. name.c) a nakon toga linkanje svih od ranije kompajliranih modula (tako sam do sada radio sa clipperom)
Izvukao sam komandu za kompajliranje pojedinog modula i napravio cc.bat
(parametar -c je "compile only")
cc.bat
=====
bcc32 -c -O2 -d -IC:\XHARBOUR\include %1.c
taj bat odradi kompajliranje i dobije .obj datoteku identičnu onoj koju odradi sa velikim batom od xharboura.
E sad treći korak.
trebao bi linkati sa ilink32 linkerom i pokušavao sam svašta. Naime ne mogu nigdje naći sa kojim parametrima bcc32 poziva taj linker i koje dodatne .obj datoteke linka sa mojima da bi izgradio .exe
maksimum što sam dobio je bio .exe koji nije radio ništa (blokirao bi) i uvijek je bio manji od onog exe-a koji bi generirao sa xharbourovim batom.
Možda ja idem nekim dužim putem, možda mi nije u redu razmišljanje kako da dođem do gotovog exe-a. Pokušao sam i sa make fileom ali nije išlo. Ovaj način sam odabrao jer imam kontrolu nad onim što bi želio linkati jer imam neke zajedničke obj datoteke koje nisu u folderu sa programom pa mi je ovako bilo lakše.
Ako neko može pomoći ili me naputiti na neki drugi način kako da počnem bio bih mu zahvalan.
Unaprijed se zahvaljujem.
poz