[ Miroslav Ćurčić @ 13.01.2004. 00:19 ] @
Pozdrav,
programiram u paskalu vec desetak godina, pocevsi od TurboPaskala5.0 do Delfija7 i za to vreme skupio povecu kolicinu raznih unit-a, kontrola i sl, a o iskustvu da i ne govorimo. Za svo to vreme imao sam prilike da radim i s C-olikim jezicima ali ih nikad nisam gotivio (stvar ukusa - uvek mi se dizala kosa na glavi kad je trebalo citati tudji c-kod).
Pre pola godine resih da predjem na Linux - sistem buducnosti. Ugostio sam Mandraka i odmah potrazio neki paskal kompajler ali cvrc - na troCDnoj instalaciji posotoji samo fpc i gpc-gcc.
Radi se o konzolnim kopajlerima bez ikakvog IDE-a i helpa. Uspesno sam instalirao Kylix i sad me muci jedno bitno pitanje:
distribucija uradjenog programa po raznim linux distrama.

Razumem da je najbolje da svaki korisnik mog programa ima mogucnost da kompajlira izvorni paskal-kod sebe i tako najbolje prilagodi ali nema svako Kylix. Smem li da se oslonim na to da ce moj "executable" raditi i na Slacku, SuSeu i ostalima, naravno uz pratece lib-ove ?
[ Miroslav Ćurčić @ 13.01.2004. 00:24 ] @
I uopste, koliko su razne linux distribucije osetljive na ne-lokalno-kompajliran program?
[ Goran Rakić @ 13.01.2004. 16:25 ] @
program je verovatno dinamički linkovan sa nekim bibliotekama (ja mislim da ti treba QT, Kylix biblioteke, glibc? ...) koje tačno verovatno znaš bolje. Možeš da koristiš ldd naredbu da vidiš koje biblioteke program učitava runtime. Moraš poštovati binarnu kompatibilnost tih biblioteka. Znači, ako korisnik ima QT2 a program traži QT3 neće raditi binarna verzija. Takođe, kako QT zavisi od glibc-a?? onda korisnik mora da ima istu verziju kao i ti.

Znači ukoliko pohvataš binarnu kompatibilnost sa dinamički linkovanim bibliotekama (deljenim bibliotekama) i sa zavišnošću tih biblioteka, program će raditi.
[ Miroslav Ćurčić @ 14.01.2004. 00:19 ] @
Znam da spoljne biblioteke moraju biti (kolko-tolko) kompatibilne ali me zanima praksa:
koliko se one u realnom zivotu razlikuju, kakva je sansa da program kompajliran na novijem mandraku radi i na novijem slacku, knopixu ili redhatu?
Znaci pitam za razliku izmedju samih linux distribucija.

Evo sta kaze ldd za jedan prosecan kylixov program:
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40023000)
libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40102000)
libdl.so.2 => /lib/libdl.so.2 (0x40152000)
libc.so.6 => /lib/i686/libc.so.6 (0x40155000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Izlistana imena su za mene spansko selo (sem prvog), kazi mi dali se mnogo (kompatibilnosti radi) razlikuju medju distribucijama?

Ili neko moze da mi da ideju kako da programiram u paskalu a da korisnici mogu bez vecih problema to lokalno kompajlirati - znaci mozda neki dobar pas -> c konvertor,
mozda neko zna ubediti kylix da negenerise izvrsni (niti c++) nego c kod,
mozda postoji neki konvertor iz izvrsnog u c oblik (mada sumnjam).
[ alex @ 14.01.2004. 00:25 ] @
Kompajliraj staticki, i neces imati nikakvih problema. Sve potrebne biblioteke, kompajler ce linkovati u sam izvrsni fajl, koji ce, istina, biti ogroman, ali ce barem raditi bez problema na svim distribucijama.

Pozdrav,
alex.
[ Miroslav Ćurčić @ 15.01.2004. 00:24 ] @
hvala, probacu da ga nateram