[ glamoc @ 26.10.2009. 16:21 ] @
Kako da obezbedim da program koji sam napisao na c/c++ radi na bilo kojoj kompatibilnoj platformi bez prethodnog prevodjenja na
samom racunaru na kome zelim da mi se program izvrsava.Kako to rade komercijalni programi pisani na c/c++(npr matlab) da li se kod kompajlira na
samoj masini na koju se instalira ili sta vec
[ Mihajlo Cvetanović @ 26.10.2009. 19:01 ] @
Odgovor se nalazi u pitanju. Ako su platforme kompatibilne onda će program raditi na svim. Na žalost kompatibilnost platformi nikad ne može da se ostvari. Tvom programu može da smeta neka zvučna kartica, ili posebna kombinacija mrežne i video kartice. Nešto neće da radi na starom Windows-u, nešto neće na novom, nešto neće da radi bez nekog servis peka, nešto neće da radi baš sa tim servis pekom, itd. Ako govorimo o Windows operativnim sistemima onda kad bilduješ aplikaciju u Platform SDK biraš za koji operativni sistem bilduješ. Ne koristiš neke egzotične tehnologije ako ne moraš. Testiraš program na što više različitih platformi. Ugradiš u program nekakvu dijagnostiku koja će ti pomoći da otkriješ zašto nešto neće da radi baš na jednom računaru, a na ostalih 99 hoće. I tako.
[ glamoc @ 27.10.2009. 10:42 ] @
Da a sta ako se razlikuju same arhitekture racunara,recimo kod mene je celobrojni podatak velicine 2 bajta a na nekoj drugoj masini 4 bajta.Ja kad
kod mene prevedem on ce u fajlove za mapiranje zabeleziti moju velicinu celobrojnog podatka a na drugom racunaru to nece dobro raditi.Jedino resenje
koje ja vidim je da program ponovo prevedem na racunaru na koji stavljam program.
[ djoka_l @ 27.10.2009. 10:56 ] @
Konkretan odgovor na tvoje drugo pitanje: programe pišeš tako da ne zavise od dužine reči na nekoj platformi. Na primer, program koji sam pisao za 32-bitne mašine trebalo je da se izvršava i na 64-bitnoj mašini. Tada se, na primer ne koristi tip int nego tip INT_32 zavisno od toga koji tipovi postoje.
Naravno, za potpuno različite platforme moraš da kompajliraš program na odgovarajućoj platformi, ako ćeš distribuirati samo izvršnu verziju. Pogledaj bilo koju open source aplikaciju, obično se nudi sors, binary za Linux i binary za Windows...
[ Nedeljko @ 27.10.2009. 11:00 ] @
Matlab se kompajlira kod proizvođača ponaosob za svaku platformu, pa na disku dobiješ verziju za svaku platformu, pa instaliraš odgovarajuću verziju na svom računaru.