Vyvijime pro PocketPC na 3 zpusoby
Jakozto linuxovy uzivatel bych byl rad, kdyby vyvojove nastroje pro PocketPC byly nativne dostupne pro linux. Z pochopitelnych duvodu nejsou. Jednak kdyz uz nekdo vyviji pro Windows Mobile, tak ma asi i “velky” Windows a ma k dispozici veci typu ActiveSync, atd. Microsoft nema duvod tyto nastroje poskytovat pro linux, kdyz sam vyrabi vlastni operacni system. Taky z hlediska trhu je to nesmysl. Lidi s linuxem, kteri by vyvijeli pro Windows Mobile, neni zrovna miliardy, aby se to vyplatilo. A naslo by se urcite i spoustu dalsich rozumnych duvodu.
Proto je uzivatel linuxu odkazan v zasade na 2 pristupy. Bud pouzije arm-wince-gcc, coz je sympaticky projekt, ktery pouziva gcc pro kompilaci nativniho kodu pro Windows CE. Bohuzel podpora pro MFC zde neni, coz je skoda, protoze MFC je na platforme Windows Mobile dostupne vsude, takze netreba trapit uzivatele s instalaci chybejicich knihoven, frameworku, a jine zbere. Osobne jsem projekt nezkousel, ale z doslechu vim, ze veci ve WIN32API funguji.
Druhy pristup je pouzit virtualizaci a ty wokna si virtualizovat. Mate-li vsak strasi a slabsi stroj jako ja, nelze hovorit o produktivite. Free nastroj pro vyvoj je v zasade jen jeden a to je eVC 4.0 (3.0 uz ze stranek MS stahnout nejde, aspon ja to nevydoloval). eVC 4.0 je pekny, az na to, ze to kazdou chvili spadne, ale co by clovek nechtel od veci co jsou zadarmo, ze? :) Virtualizace se teoreticky tvari hezky, ale prakticke mi to neprijde. Zkousel jsem vmplayer a co chvili zacal ukladat obrovsky kusy dat na disk, ale takovym zpusobem, ze se neslo nikam prepnout, treba ani opustit ten virtualni stroj. Pri ukladani souboru, clovek videl 2-3 s zpozdeni, nez se to ulozilo. Az na tyto problemy to funguje bezvadne. ActiveSync bezi, emulator bezi, eVC bezi, da se pripojit na emulator, lze pripojit i fyzicke zarizeni. Jiny problem ale je napr. nemoznost krokovat binarku z eVC 4.0 v emulatoru WM6 (nekompatibilita, moc nove, eVC nezna). Jo, muzete si koupit VS2005/8 a pak mate “vsechno” funkcni z krabice ;-)
Dale by nekdo mohl rict, ze si to eVC naemuluje ve wine. Coz je myslenka hezka, ale prakticky nerealizovatelna, protoze eVC ve wine nainstalovat nejde. Dalsi problem by asi byl s ActiveSync, takze myslenka na to, ze vsechno odemulujeme ve wine se rozplyne celkem brzy.
No a pak je tu reseni pro tvrdy chlapy. V zasade jde o to prenest nezbytne casti pro preklad a linkovani do linuxu, pro projekt vytvorit Makefile, kod editovat svym oblibenym editorem v linuxu a pouzit make pro preklad a sestaveni.
Co vsechno musite prenest? clarm.exe, link.exe, rc.exe, coz je prekladac, linker, kompilator resourcu.
Kde to vezmete? V EVC 4.0.
Jak to pustit v linuxu? Pres wine :)
Co je k tomu jeste treba? Instalovat SDK pro PocketPC 2003, kde jsou liby a header soubory, ktery bude potreba.
Ovsem jak testovat? Nasnade je prenest binakru na zarizeni a vse delat tam. Ovsem pokud neco nevyjde, musime HR a obnovit zarizeni, coz nas nepotesi. Toz by to chtelo emulator. A ono to jde. Windows Mobile 6 SDK jde pod wine nainstalovat, stejne tak ARM Standalone emulator, SDK ma “jen” binarni obrazy pro emulator.
Zda se to jako fantazie, ale neni. Samotnymu se mi to podarilo a ted muzu psat kod v eclipse, prekladat a testovat v emulatoru a to vse v linuxu, bez zpomaleni vmplayerem. Ovsem stejne jako vsechno, i toto neni prefektni. Emulator nejde pripojit k internetu, takze nelze delat sitove programy. Nicmene i toto by mely byt teoreticky mozne, pokud by se podarilo do wine dostat VirtualPC od MS (instalator pustit jde, ale nedobehl mi do konce). Dalsi vec co muze citelne chybet je nemoznost debuggovani. Holt zpatky na stromy a uzijme si ladicich vypisu…
Pozn.: Vyvoj v C# nezminuji, protoze v tom nedelam a ani o tom nic nevim (a ani nechci :)
Add comment Červenec 17, 2008

