[ vladab @ 01.11.2003. 17:49 ] @
Imam problem sa Kylix-om 3. Kada napravim neki program i kada pokušam da ga startujem on se zaglavi i onda moram da ga ubijem. Inace treba mu baš dosta vremena da se startuje, pri tome mi poprilično uspori računar. Kada iskompajliram program koji sam napravio, on mi napravi binarni fajl, ali taj fajl neće da radi! :) Sada imam kylix, ali ne mogu da radim u njemu!!!

HELP !!!!!!!!!!!!!!!
[ duxxx001 @ 01.11.2003. 21:54 ] @
da bi startovao binarni fajl moraces da uradis jednu od ove dve stvari:

1) Set LD_LIBRARY_PATH=/usr/local/kylix3/bin (ili vec gde si instalirao kylix)
export $LD_LIBRARY_PATH
./progname

2) env LD_LIBRARY_PATH=/usr/local/kylix3/bin ./progname

Kad ti dosadi kucanje, onda lepo ubaci prve dve linije slucaja (1) u /etc/profile i onda ces moci da startujes program samo sa ./progname (ili klikom iz XWindowsa).
[ vladab @ 02.11.2003. 17:56 ] @
Sta da radim sa prvim delom problema (sporo i ukoči se kada startujem program iz IDE-a?
[ silverglider @ 03.11.2003. 11:58 ] @
Ne verujem da se zaglavi sam od sebe; ako radi kao binarni executable koji startujes iz terminala, a iz IDE-a ne radi dobro, onda je u pitanju debugger koji iskljucis (pa vidis).
[ vladab @ 03.11.2003. 17:47 ] @
Definitivno je debuger. Kada ga isključim od problema samo ostaje sporo startovanje ( sa kojim mogu da živim ) i kako debugovati, izgleda da ću morati pešački. Ima li neko neki hint kako da sredim debuger?

silverglider, hvala, ko zna koliko bih se jbo da se rešim bede :)
[ silverglider @ 04.11.2003. 09:55 ] @
Zavisi sta smatras pod "sredjivanjem" dibagera.

Sa nekim stvarima se definitivno ne slaze; npr. kada radis multithreading - dibager jednostavno ne dozvoljava da se threadovi sinhronizuju. Slicne probleme sam primetio kod nekih socket (udp/tcp) komponenti takodje. U takvim situacijama (pored cekanja apdejta/patcha) mozes ili da koristis klasicne metode "rucnog" dibagovanja (trejsing pomocnih varijabli, output messages, itd) ili da eventualno probas neki 3rd party dibager - neki koji ima opciju "attach to process"; startujes svoj program, pa se na njega "nakacis" dibagerom. Valjda ti bi trebalo da se uklopi sa recimo gdb ili ttt koji dolaze sa linux distroima.
[ vladab @ 04.11.2003. 12:00 ] @
Meni debuger ne radi uopšte!
Radio sam ručno i pre, tako da ću da živim sa tim. :)

Nego imam još jedan problem. Neće da mi učitava libove za rad sa bazama. Libovi postoje i nalaze se u /usr/local/kylix3/bin. Postoji i staza da njih. Takodje sam proveravao i dozvole i one su u redu.
Kada pokušam da connected stavin na true, kaže mi da ne može da učita libmysqlclient.so. Ista je stvar i sa ostalim bazama, mada sam to probao čisto iz očaja, jer nemam instalirane druge baze.
[ silverglider @ 04.11.2003. 16:43 ] @
Ne, nije to lib u /opt/kylix3/bin - to dbExpress komponenta (TSQLConnection) pokusava da se poveze sa klijent delom tvoje aktuelne verzije mysql-a koji imas instaliran na racunaru.

Dakle, treba kod sebe da instaliras mysql paket (mozes da proveris i sa "rpm -q mysql" ukoliko imas distro sa rpm-om). Kada ga instaliras, obicno se ta biblioteka smesti u /usr/lib/mysql pod nazivom libmysqlclient.so.10.0.0 i ti treba samo da napravis symbolic link na njega u istom diru ukoliko vec ne postoji. U tom slucaju odes u /usr/lib/mysql i kucas lepo "ln -s libmysqlclient.so.10.0.0 libmysqlclient.so". Ukoliko nije verzija 10.0.0 zamenices je svojom.
[ vladab @ 05.11.2003. 20:26 ] @
Citat:

U tom slucaju odes u /usr/lib/mysql i kucas lepo "ln -s libmysqlclient.so.10.0.0 libmysqlclient.so". Ukoliko nije verzija 10.0.0 zamenices je svojom.


Ne vredi. Uradio sam, ali opet ista priča. Čak sam pravio i link u /usr/local/kylix3/bin, ali ni to nije pomoglo.
[ silverglider @ 07.11.2003. 09:46 ] @
Za ovo ti ne treba nikakav link u <kylix3/bin> diru, naprotiv. Konekcija ka bazi se sastoji od tri dela:
1. dbExpressova TSQLConnection komponenta
2. drajver koji izaberes (mysql) - samo on se fizicki nalazi u <kylix3/bin> diru: libsqlmy* i on je borlandov wrapper oko mysql klijenta, nista vise. Kada izaberes u TSQLconnectionu drajver MySQL, on ti ispise pod "VendorLib" propertyjem koji klijent so/dll pokusava da nadje (po dirovima koji su u $PATH-u)
3. sam klijent so/dll koji nije pisao borland nego proizvodjac - u ovom slucaju je to /usr/lib/mysql/libmysqlclient.so.xxxx


Dakle, kada vidis pod "VendorLib" koju biblioteku konkretno trazi wrapper, odes u mysql klijent dir i tamo kreiras symbolic link sa takvim imenom. Meni je uvek do sada proradilo - na raznim distroima i sa svim Kylixima do sada. Eh da, napomena - uvek sam radio sa MySQL 3.23.xx verzijama - ne znam da li je isti drajver nadlezan i za MySQL 4.x ili postoji zaseban.