Koodia kännykkään

Onko missään hyviä ja selkeitä ohjeita siitä miten Symbian Series 60-alustalle tehdään C -ohjelmia? Nokia Forum-sivulta löytyy kyllä jotain, mutta ne käsittelevät pelkästään Symbiania ja sijaitsevat levällään kuin Jokisen eväät. Itse siirryn C :n Javasta ja siksi tarvitsisin apuja myös tuon Visual Studion konfiguroimiseen, joka ainakin näin ensialkuun vaikuttaa hieman kaaottiselta jutulta.

Uuden Symbian-projektin alussa Visual Studio synnyttää ison kasan tiedostoja ja niiden tarpeellisuuden pähkäilyyn ei tahdo motivaatio millään riittää etenkin, kun siihen tarvitaan Sherlock Holmesin tyyppistä salapoliisityöskentelyä. Miten kääntäjälle kerrotaan esim. javan classpath:stä tutut kirjastojen sijainnit ja missä määritetään kääntäjän optiot? Nyt toi paska herjaa jos jostakin ja tuon epäolennaisen kanssa painimiseen menee koko tarmo.

En millään viitsisi poltaa aikaani opiskelemalla ensin C -ohjelmien teko Windowsille, jotta saan kuvaan käännöksessä käytetystä parametriavaruudesta ja sitten poisopiskelemisen kautaa siirryn Symbianiin. Onko missään opusta suorempaa reittiä varten ja kannattaisiko edellisen sijasta vaihtaa myös sovelluskehitin vaikkapa CodeWarrior:iin?

-Jonttu-
111423
Äänestä

Muut lukivat myös

Vastaukset 11

Vanhimmat

Oletko tutustunut www.symbian.com. Tosin suosittelen sitä 'punaista kirjaa', jonka avulla pääsee hyvin alkuun. Professional...jotain...

Visual studio ei tarvitse juuri mitään asetteluja, jotta ohjelman kääntäminen onnistuu. Ympäristö pitää olla asennettu oikein(eli esimerkiksi nokian sdk asennettuna).

Sen jälkeen polkumääritykset tehdään symbian projektin mmp tiedostoon, josta abld ohjelma generoi vastaavan projektitiedoston (ja worspacen) studiolle. Tämän jälkeen käännöksen tulisi mennä oikein itsestään.

CodeWarrior saattaa olla hyvä juttu varsinki tulevaisuudessa mutta mikäli studio on jo asenettu niin codewarrior tuskin tuo sulle mitään lisäarvoa.

Onhan sulla siis symbian sdk asennettuna...se tarvitaan ehdottomasti pohjalle, sen avulla mm. resurssien kääntäminen onnistuu ja myös kohderaudalle kääntäminen (sehän tapahtuu ilman studion kääntäjää gcc kääntäjällä).

Äänestä
  • Ai niin...se studio generoi tosiaankin kovasti tiedostoja käännöksen aikana, varsinkin jos olet rastittanut generate browse info kuten kantsii tehdä (Projest/Settings/Browse Info).

    Se kuitenkin myös siivoaa kun valitset Build/Clean mikäli haluat vapauttaa kovalevytilaa. Voit tosin myös käsityönä käydä deletoimassa kaikki 'Intermediate fileet'.

    Äänestä

  • "...sdk asennettuna?". Downloadasin Symbian 6.1:n Forum Nokian sivuilta ja asensin sen koneelle. Tämä asennus ei nähdäkseni asenna sitä vielä Visual Studioon? Asennetun sdk:n mukana tulee mm. emulaattori ja tukku tiedostoja, joista paljon sälää sijaitsee polun "C:\Symbian\6.1\Series60\Epoc32\Include" alla.

    C ei ole Java, mutta Javassa käännökset eri alustoille (J2SE, J2ME) tehdään käyttämällä "-bootclasspath"-optiota, jolla kääntäjälle kerrotaan mihin ja minkä kirjastojen pohjalta käännös tehdään. C/C :ssa vastaava linkitys on hämärän peitossa ja jotenkin mun pitää voida kertoa sekä kehittimelle, että kääntäjälle muiden kirjastojen sijainti, jotta linkitys onnistuu.

    Mikäli nyt menen Visual Studioon ja valitsen menusta "New -> Series 60 AppWizard v1.9" niin homma alkaa menemään perselleen jo siinä, kun "Platforms:" kohdasta ei voi valita muuta kuin "Win32"-option. Nähdäkseni tämä tarkoittaa sitä, että VS:n kääntäjä kääntää koodin väärälle plattärille ja jolloin se ei voi toimia/onnistua.

    Kysymyksiä on siis lähinnä kaksi:

    a) Miten noi Symbianin alla olevat "include" tiedostot asennetaan/pointataan Visual Studioon niin, että ne "ylikirjoittavat" bootclasspath-tyyppisesti muut samannimiset kirjastot?

    b) Miten Symbianin gcc-kääntäjä plugataan Studioon, vai plugataanko ensinkään? Ja mistä tuon gcc-kääntäjän löytää? Java-koodauksessa ei ole liiemin tarvinut murehtia myöskään noista kohdekoneen prosessoreista, joten pitääkö gcc-kääntäjän olla vielä prosessorikohtainen? Vai meneekö homma niin, että sovellus ajetaan täysin käyttiksen päällä, jolloin prosessorista ei ole väliä? Tarviinko siis gcc-kääntäjän Symbianille vai prosessorille? (veikkaan Symbiania etten näytä niin hölmöltä...)

    Kylläpä näyttää alkuun sekavalta.

    -Jonttu-

    Äänestä

  • Jonttu kirjoitti:

    "...sdk asennettuna?". Downloadasin Symbian 6.1:n Forum Nokian sivuilta ja asensin sen koneelle. Tämä asennus ei nähdäkseni asenna sitä vielä Visual Studioon? Asennetun sdk:n mukana tulee mm. emulaattori ja tukku tiedostoja, joista paljon sälää sijaitsee polun "C:\Symbian\6.1\Series60\Epoc32\Include" alla.

    C ei ole Java, mutta Javassa käännökset eri alustoille (J2SE, J2ME) tehdään käyttämällä "-bootclasspath"-optiota, jolla kääntäjälle kerrotaan mihin ja minkä kirjastojen pohjalta käännös tehdään. C/C :ssa vastaava linkitys on hämärän peitossa ja jotenkin mun pitää voida kertoa sekä kehittimelle, että kääntäjälle muiden kirjastojen sijainti, jotta linkitys onnistuu.

    Mikäli nyt menen Visual Studioon ja valitsen menusta "New -> Series 60 AppWizard v1.9" niin homma alkaa menemään perselleen jo siinä, kun "Platforms:" kohdasta ei voi valita muuta kuin "Win32"-option. Nähdäkseni tämä tarkoittaa sitä, että VS:n kääntäjä kääntää koodin väärälle plattärille ja jolloin se ei voi toimia/onnistua.

    Kysymyksiä on siis lähinnä kaksi:

    a) Miten noi Symbianin alla olevat "include" tiedostot asennetaan/pointataan Visual Studioon niin, että ne "ylikirjoittavat" bootclasspath-tyyppisesti muut samannimiset kirjastot?

    b) Miten Symbianin gcc-kääntäjä plugataan Studioon, vai plugataanko ensinkään? Ja mistä tuon gcc-kääntäjän löytää? Java-koodauksessa ei ole liiemin tarvinut murehtia myöskään noista kohdekoneen prosessoreista, joten pitääkö gcc-kääntäjän olla vielä prosessorikohtainen? Vai meneekö homma niin, että sovellus ajetaan täysin käyttiksen päällä, jolloin prosessorista ei ole väliä? Tarviinko siis gcc-kääntäjän Symbianille vai prosessorille? (veikkaan Symbiania etten näytä niin hölmöltä...)

    Kylläpä näyttää alkuun sekavalta.

    -Jonttu-

    Suosittelen sinulle jonkun kirjan lukemista pohjaksi tai vaikkapa mikrobitissä ollutta artikkelia mutta:

    - Tarkista että ymäristömuuttuja EPOCROOT on asettunut oikein, esimerkiksi: \Symbian\6.0\NokiaCPP\
    - Unohda se application wizard ja löydä helloword esimerkeistä.
    - Avaa command prompt kyseiseen hakemistoon.
    - Komento: bldmake bldfiles (ei virheitä ?)
    - Komento: abld build wins udeb (ei virheitä)

    Nyt helloword on käännetty onnistuneesti wins ympäristöön. Tästä on hyvä jatkaa...

    - Komento: abld makefile vc6

    Nyt on generoitu dsp ja dsw tiedostot visual studiolle. Ne tai siis se dsp (visual studion projektistiedosto) sisältävät tarvittavat polkumääritykset. Mitään muita määrityksiä ei tarvitse tehdä studiossa.

    Sitten voit avata tuon projektin studioon...
    - File/Open workspace ja browsaa epoc32/build/.... sieltä jostain löytyy helloworld.dsw

    Nyt voit työskennellä projektin parissa studiolla, debugata kuten mitä tahansa dos/windows ohjelmaa.

    Sitten haluat kääntää arm prosessorille ?

    command proptissa jälleen...
    Komento: abld build thumb urel

    ookei ?

    Kyllä se siitä...

    Sitten kun haluat luoda uuden projektin 'tyhjästä' se tapahtuu luomalla munoma.bld tiedosto, joka kuvaa projektin...tuosta siis ne bldmake ja abld työkalut generoivat studiolle projektitiedoston ja osaavat kääntää gcc kääntäjällä armille.

    Äänestä

  • Koodari kirjoitti:

    Suosittelen sinulle jonkun kirjan lukemista pohjaksi tai vaikkapa mikrobitissä ollutta artikkelia mutta:

    - Tarkista että ymäristömuuttuja EPOCROOT on asettunut oikein, esimerkiksi: \Symbian\6.0\NokiaCPP\
    - Unohda se application wizard ja löydä helloword esimerkeistä.
    - Avaa command prompt kyseiseen hakemistoon.
    - Komento: bldmake bldfiles (ei virheitä ?)
    - Komento: abld build wins udeb (ei virheitä)

    Nyt helloword on käännetty onnistuneesti wins ympäristöön. Tästä on hyvä jatkaa...

    - Komento: abld makefile vc6

    Nyt on generoitu dsp ja dsw tiedostot visual studiolle. Ne tai siis se dsp (visual studion projektistiedosto) sisältävät tarvittavat polkumääritykset. Mitään muita määrityksiä ei tarvitse tehdä studiossa.

    Sitten voit avata tuon projektin studioon...
    - File/Open workspace ja browsaa epoc32/build/.... sieltä jostain löytyy helloworld.dsw

    Nyt voit työskennellä projektin parissa studiolla, debugata kuten mitä tahansa dos/windows ohjelmaa.

    Sitten haluat kääntää arm prosessorille ?

    command proptissa jälleen...
    Komento: abld build thumb urel

    ookei ?

    Kyllä se siitä...

    Sitten kun haluat luoda uuden projektin 'tyhjästä' se tapahtuu luomalla munoma.bld tiedosto, joka kuvaa projektin...tuosta siis ne bldmake ja abld työkalut generoivat studiolle projektitiedoston ja osaavat kääntää gcc kääntäjällä armille.

    "bldmake bldfiles (ei virheitä ?)" -> herjasi Perlin puuttumisesta, mutta korjaantui tämän asennuksen myötä.

    "abld build wins udeb (ei virheitä)" -> herjaa "nmake"-puuttumisesta. Ohjelmaa ei löydy Symbian kansiosta. Tietänetkö mikä toi on? Käytössäni on Symbianin versio 6.1.

    Latasin verkosta CodeWarrior Symbian Pro Edition, joka osaa importoida mmp-tiedostoja. Tämä taitaisi korvata tuon komentorivi työskentelyn vaikka eipä tuo nmake-ongelmakaan kovin pahalta enää kuulosta.

    Vastauksesi selvitti muuten aika monta avointa kysymystä, eli kiitos vaivannäöstäsi tähän saakka.

    Taidanpa lukaista sen mikrobitin artikkelin aikani kuluksi, jos vaikka sitä kautta saisi lisää infoa asian timoilta.

    Hyvää Uutta Vuotta!

    -Jonttu-

    Äänestä

  • Jonttu kirjoitti:

    "bldmake bldfiles (ei virheitä ?)" -> herjasi Perlin puuttumisesta, mutta korjaantui tämän asennuksen myötä.

    "abld build wins udeb (ei virheitä)" -> herjaa "nmake"-puuttumisesta. Ohjelmaa ei löydy Symbian kansiosta. Tietänetkö mikä toi on? Käytössäni on Symbianin versio 6.1.

    Latasin verkosta CodeWarrior Symbian Pro Edition, joka osaa importoida mmp-tiedostoja. Tämä taitaisi korvata tuon komentorivi työskentelyn vaikka eipä tuo nmake-ongelmakaan kovin pahalta enää kuulosta.

    Vastauksesi selvitti muuten aika monta avointa kysymystä, eli kiitos vaivannäöstäsi tähän saakka.

    Taidanpa lukaista sen mikrobitin artikkelin aikani kuluksi, jos vaikka sitä kautta saisi lisää infoa asian timoilta.

    Hyvää Uutta Vuotta!

    -Jonttu-

    Juu eli nmake on visual studion työkalu. (C:\Program Files\Microsoft Visual Studio\VC98\Bin\NMAKE.EXE)

    Sinä studion asennuksessa muistaakseni kysytään halautko laittaa pathin osoittamaan siten että käännökset onnistuvat command promptissa...ilmeisesti et halunnut :-)

    Joten laitappa tuo studion polku siihen path environment variapleen kaikalleen.

    Mulla path on jotain tämmöstä:
    C:\Program Files\Microsoft Visual Studio\Common\Tools\WinNT;C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;C:\Program Files\Microsoft Visual Studio\Common\Tools;C:\Program Files\Microsoft Visual Studio\VC98\bin

    ja lisäksi vielä:
    c:\Perl\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Symbian\6.0\Shared\epoc32\tools;C:\Symbian\6.0\Shared\epoc32\gcc\bin;

    En ole kokeillut tuota warrioria mutta kyllähän sillä helpolla pääsee...tosin studioonkin on aputyökaluja, joilla vältyt command proptissa kääntämiseltä. Itseäni se ei haittaa kun se tehdään yleensä vain kerran projektin alussa, ja sen jälkeen pärjää yleensä studion puolella.

    ..ja vinkkinä vielä: Kannattaa substata se symbian hakemisto jollekin levyasemakirjaimelle. Näi välttyy pitkiltä poluilta ja ympäristön (esim. s60 -> s90) vaihdokset saa helposti tehtyä.

    Äänestä

Kun kerta osaat jo koodata Javalla, niin miksi
hankkia buginen Visual studio, joka kaatuu alta puolen tunnin alta pois ja vie käyttiksen mukana? Javallakin voi tehdä symbianiin ohjelmia. Nokian foorumilta etsit sopivan pakrin jonka imuroit ja asennat mukaan Javan SDK:n, niin et tartte opetella edes C -kielen huonmoja ominaisuuksia verrattuna Java-kieleeen, jotka koodaustapana aiheuttavat suuria ongelmia (ilmankos se studio kaatuu alta?), kuten viittaaminen varatun muistialueen ulkopuolelle, joka kaataa ohjelman (Javassa tämä ei ole edes mahdollista). Jos siis hankit Studion, heitä vesilintua, tai myö jollekkin muulle ko. paketti asevelihintaan :-).

Äänestä
  • ...pöydässä syöt, sen lauluja laulat.

    Uskoisin, että jo muutaman vuoden päästä tilanne on toinen. Siihen saakka ja parempaa J2ME-versiota odotellessa on jostain toimentulo hankittava.

    Se Visual Studio vaikutti tosiaan aivan p:ltä ja siksi asensin koneeseen CodeWarriorin, jolla koodaaminen onnistuu liki samalla tavalla kuin Java JCreatorilla.

    Ensituntumat C :sta ovat sellaiset, että kyllä on pakka täysin sekaisin tässä kielessä ja fiilikset rajusti miinuksella. Jätkät käyttää esikääntäjää kuin mitäkin replace-komentoa ja template:llä jatketaan siitä mihin tuolla edellisellä kikkailulla ei päästä. Todelliseen olipohjaisuuteen tällä kielellä päästään vain koodausvaiheessa ja kaikki verkon läpi tapahtuvat dynaamiset moduulilaajennukset olemasa oleviin rajapintoihin saa unohtaa saman tien.

    Mikäli ohjelmointityön hinta olisi suurempi niin tuskimpa C :lla tehtäisiin muuta kuin joitain ajureita ja paranneltaisiin JVM:n tukea. Nyt kovan kilpailun nimissä puhelimeen valitaan kaikkein halvin prosessori, minimaalinen määrä muistia ja laitetaan armeja koodareita vääntämään sovelluksia C :lla.

    Nykyisestä J2ME:stä ei ole vastaavasti mitään hyvää sanottavaa ja siksi toivonkin, että joku yritys implementoisi J2SE:n puhelimeen asap. Nykyinen J2ME on suorastaan rikos Javaa kohtaan ja alustariippumatomuudesta ei ole enää tietoakaan jatkuvien midp/cldc-päivitysten myötä.

    -Jonttu-

    Äänestä

  • Olen käyttänyt visual studion eri versioita päivittäin ~8 h päivässä viimeisen 10 vuoden aikana. Kun päästiin 32 bittisiin käyttöjärjestelmiin kaatuili loppui käytännössä.

    Kun alusta on kunnossa studio toimii loistavasti. On tunnettu tosiasia ettei 98 riitä alustaksi studiolle vaan NT4.0 tai W2K tuntuvat olevan soveliaat. NT4.0:n päällä studion kaataminen on enneminkin työn ja tuskan takana. Tietysti eri asia on mikäli järjestelmä muutoinkin on epävakaa, sillä ottaahan studio todella paljon tehoja koneesta. Alle 128 MB muisteilla ei kannata ruveta hommiin, mikäli kyseessä siis on esimerkiksi vc6.0 versio.

    Äänestä

  • pystyykos javalla jni:n kautta keskustelemaan esim. symbian alustalla jo valmiiksi tehdyn c -kielisen dll-palikan kanssa? eli kuuluuko jni osana j2me:hen. en kumma kyllä löytänyt sunin sivuilta edes j2me-dokkareita. Käytännössä kait pitäisi pykätä jokin välipalikka(metodirungot javah -jni komennolla joka sitten toimisi siinä alkuperäisen dll:n uuden javakoodin välillä?

    Äänestä

  • Jonttu kirjoitti:

    ...pöydässä syöt, sen lauluja laulat.

    Uskoisin, että jo muutaman vuoden päästä tilanne on toinen. Siihen saakka ja parempaa J2ME-versiota odotellessa on jostain toimentulo hankittava.

    Se Visual Studio vaikutti tosiaan aivan p:ltä ja siksi asensin koneeseen CodeWarriorin, jolla koodaaminen onnistuu liki samalla tavalla kuin Java JCreatorilla.

    Ensituntumat C :sta ovat sellaiset, että kyllä on pakka täysin sekaisin tässä kielessä ja fiilikset rajusti miinuksella. Jätkät käyttää esikääntäjää kuin mitäkin replace-komentoa ja template:llä jatketaan siitä mihin tuolla edellisellä kikkailulla ei päästä. Todelliseen olipohjaisuuteen tällä kielellä päästään vain koodausvaiheessa ja kaikki verkon läpi tapahtuvat dynaamiset moduulilaajennukset olemasa oleviin rajapintoihin saa unohtaa saman tien.

    Mikäli ohjelmointityön hinta olisi suurempi niin tuskimpa C :lla tehtäisiin muuta kuin joitain ajureita ja paranneltaisiin JVM:n tukea. Nyt kovan kilpailun nimissä puhelimeen valitaan kaikkein halvin prosessori, minimaalinen määrä muistia ja laitetaan armeja koodareita vääntämään sovelluksia C :lla.

    Nykyisestä J2ME:stä ei ole vastaavasti mitään hyvää sanottavaa ja siksi toivonkin, että joku yritys implementoisi J2SE:n puhelimeen asap. Nykyinen J2ME on suorastaan rikos Javaa kohtaan ja alustariippumatomuudesta ei ole enää tietoakaan jatkuvien midp/cldc-päivitysten myötä.

    -Jonttu-

    Muistaakseni Tampereen Teknillinen Yliopisto kehui, että se on käytännössä heidän tuotoksiaan. Voihan asiantila toki vaihtua palautteesi jälkeen :-)

    Äänestä

Kommentoi aloitusta


Jonttu kirjoitti:

Onko missään hyviä ja selkeitä ohjeita siitä miten Symbian Series 60-alustalle tehdään C -ohjelmia? Nokia Forum-sivulta löytyy kyllä jotain, mutta ne käsittelevät pelkästään Symbiania ja sijaitsevat levällään kuin Jokisen eväät. Itse siirryn C :n Javasta ja siksi tarvitsisin apuja myös tuon Visual Studion konfiguroimiseen, joka ainakin näin ensialkuun vaikuttaa hieman kaaottiselta jutulta.

Uuden Symbian-projektin alussa Visual Studio synnyttää ison kasan tiedostoja ja niiden tarpeellisuuden pähkäilyyn ei tahdo motivaatio millään riittää etenkin, kun siihen tarvitaan Sherlock Holmesin tyyppistä salapoliisityöskentelyä. Miten kääntäjälle kerrotaan esim. javan classpath:stä tutut kirjastojen sijainnit ja missä määritetään kääntäjän optiot? Nyt toi paska herjaa jos jostakin ja tuon epäolennaisen kanssa painimiseen menee koko tarmo.

En millään viitsisi poltaa aikaani opiskelemalla ensin C -ohjelmien teko Windowsille, jotta saan kuvaan käännöksessä käytetystä parametriavaruudesta ja sitten poisopiskelemisen kautaa siirryn Symbianiin. Onko missään opusta suorempaa reittiä varten ja kannattaisiko edellisen sijasta vaihtaa myös sovelluskehitin vaikkapa CodeWarrior:iin?

-Jonttu-

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu