Kirjoittaja |
Viesti |
JPQ
| Lauantaina, 2. lokakuuta, 2004 - klo 6.27: | | Muistanko oikein että MorphOSin SDKoon GCC paketin c++ kääntäjä on "rikki" ja jos oli rikki niin missä se toimiva oli? PS. eräs c++ koodi ei käänny en näe siinä vikaakaan.
|
JPQ
| Lauantaina, 2. lokakuuta, 2004 - klo 15.13: | | Eikä muistin varassa tehty helloworld kloonikaan. Eikä hieno säädettynäkään... eli jos vain linkin saisin.
|
itix
| Lauantaina, 2. lokakuuta, 2004 - klo 15.30: | | Osa C++ koodista kääntyy, osa ei. Vaihda vanhempaan versioon: Toimiva gcc (en kyllä muista miten tuo piti asentaa, tuo nimittäin vaatii hiukan enemmän säätöä sitten...)
|
JPQ
| Lauantaina, 2. lokakuuta, 2004 - klo 15.48: | | itix: aha löysinkin tuon jo (oli kovempi työ kuin luulin) mutta tosiaan ei voi tietenkään asentua suoraan. ihan kenelle vaan joka tietää: ja alkup. paketin g++ on soft link. ja kokeilin kierouttani nimetä tuon g++ fileen joka paketissa on g++2 nimelle väittää ettei ole ajettava vaikka järjestelyjen jälkeen onkin r,w,e,d liput päällä. (eli myös lippu e) Eli jatko apua odotan.
|
itix
| Lauantaina, 2. lokakuuta, 2004 - klo 16.01: | | Kokemattoman ei kyllä kannata alkaa itse tuota pakettia asentamaan. Tee ainakin entisestä GG-hakemistosta varmuuskopio ennen kuin alat kopioimaan mitään tiedostoja. Kaikkea tuosta paketista ei tarvitse (tai kannata) kopioida... yritin vilkaista MDC:stä linkkiä mutta en löytänyt mitään... (siellä se on kyllä joskus kerrottu)
|
JPQ
| Lauantaina, 2. lokakuuta, 2004 - klo 18.34: | | itix: minäkin löysin tuon paketin jostain saksankielisestä ketjusta jossa en tiedä saiko tyyppi lopulta tuon toimimaan toisten neuvoilla ainoa vaan tuon tason saksa menee yli kaalin.
|
JPQ
| Sunnuntaina, 3. lokakuuta, 2004 - klo 2.02: | | http://www.amiga-news.de/forum/thread.php3?id=12849&BoardID=15 tuolla tuo saksalais juttu käänsin tekstin babelfishillä englanniksi ja kopioin ohjeiden mukaiset fileet muuten nyt tuntuu kääntyvän mutta se toinen koodi ei siis helloworld on käännettynä yli 400kilotavua eli jotain kait on vieläkin pielessä. Ja koodi on tässä: #include using namespace std ; main () { unsigned short value = 1; unsigned char *ptr = (unsigned char *) &value; if (*ptr == 1) cout << "I'm Little-Endian" << endl ; else cout << "I'm Big-Endian" << endl ; return 0 ; } PS. auttakaa olisi kiva "ehkä" opetella myös c++:saa eikä pelkkää c kieltä. Nythän opiskelua hankaloittaa aika ilmeisen yli isot ajattevat voin sanoa nyt ei tällä hetkellä blitz basic tekeleetkään tunnu isoilta. PPS. koodi ei ole omaani eli sen laatua turha haukkua tässä mutta ainakin sain pegasoksella tuloksen Big Endian joka on muistaakseni oikein.
|
JPQ
| Sunnuntaina, 3. lokakuuta, 2004 - klo 2.04: | | tuosta #include rivistä puuttuu osa. Jonka tietänette no se on pienenmpikuin merkki iostream.h ja sitten vielä isompi kuin merkki. Muuten näyttää koodi kopioituneen oikein. PS. toki jos koodi rumaa koodausta olevinaan saa sitten sanoa senkin.
|
Jon
| Sunnuntaina, 3. lokakuuta, 2004 - klo 13.46: | | JPQ: kai kokeilit "stripata" exen? Eli muistaakseni linkata sen parametrilla -s, tai sitten erillisellä strip-käskyllä. Nyt en aivan ymmärtäny, että oliko tuossa koodissa jotain vikaa? Jos on, niin kerro virheilmoitukset.
|
JPQ
| Sunnuntaina, 3. lokakuuta, 2004 - klo 15.18: | | Jon: ei ollut vaan tarkoitin että kun siitä tulee se valtaisa ajettava oli ihmetyksen kohteena ja pistin koodin että voitte arvioida/kokeilla miten iso sen pitäisi olla. Tutkin neuvosi.
|
JPQ
| Sunnuntaina, 3. lokakuuta, 2004 - klo 16.05: | | Strippiä kokeilin näin strip a.out kappas a.out pienee kyllä näinkin jo jonkin verran eli koko ennen operaatiota oli 468848 ja sen jälkeen 130864. Ja koodina siis yllä annettu pätkä joka ei varmaan vieläkään ole ihanne mitoissaan. Rupean kohta stripin ohjeita lukemaan josko saisin lisää pois tuossahan minun järkeeni ainakin puolet liikaa.
|
JPQ
| Sunnuntaina, 3. lokakuuta, 2004 - klo 16.11: | | Kappas en vaan löytänyt ainakaan vielä strip ohjeita muita kun sen komentorivi parametrit man sivun jonka aukaisu ei ole ainakaan näin helppoa man strip...
|
JPQ
| Sunnuntaina, 3. lokakuuta, 2004 - klo 16.12: | | oikeastaan tuo vika viittaisi siihen etten tiedä onko koodi huonoa ohjelmointia jostain syystä. Ja morphoshan tulostaa tuolla Big Endian.
|
Jon
| Sunnuntaina, 3. lokakuuta, 2004 - klo 16.57: | | Siis C++-esimerkkinä tuo on huono. Aivan turha kääntää C++-kääntäjällä, jos aikoo käyttää cin/cout-juttuja pari kertaa! Kyse on siitä, että kun teet vähän isompaa softaa esim. C:llä, niin todennäköisesti olisit joutunut itse koodaamaan jotain palikoita (=isompi softa), kun taas C++:aa käytettäessä kieli olisi mahdollistanut nämä (=vähemmän koodausta sinulle).
|
JPQ
| Sunnuntaina, 3. lokakuuta, 2004 - klo 18.35: | | Jon: no tuo ei ole esimerkki tuo on ratkaisu erääseen pulmaan jota sitten voi "valtaisa" ohjelma käyttää eli vain murto osa ohjelmaa ja olet oikeassa ei todellakaan C++ ole järkevää noin pieneen juttuun en vaan tiedä miksi kirjan kirjoittaja sitä käytti. Muut koodit on sitä kieltä mikä on selkein kyseiseen asiaan eli kait C,C++,Pascal vaihtoehdoista.
|
miksuh
| Maanantaina, 4. lokakuuta, 2004 - klo 16.28: | | JPQ: No totahan mä olen monesti sullekin muistaakseni sanonut. GCC ei tee mitenkään hirveän isoa koodia, pitää vain huomata että oletuksena se laittaa exeen mukaan debug-kamaa. Jos ne on exessä, niin sillon se on iso. Ne GCC:n lisäämät jutut saa tosiaan pois GCC:n -s optiolla tai käyttämällä tota strip-komentoa. -s poistaa ne ylimääräset kamat siis jo käännettäessä.
|
miksuh
| Maanantaina, 4. lokakuuta, 2004 - klo 16.37: | | "Kyse on siitä, että kun teet vähän isompaa softaa esim. C:llä, niin todennäköisesti olisit joutunut itse koodaamaan jotain palikoita (=isompi softa), kun taas C++:aa käytettäessä kieli olisi mahdollistanut nämä (=vähemmän koodausta sinulle). " No onhan toikin toki totta, mutta mun mielestäni C++:n suurin etu on se, että se mahdollistaa paljon parenmman koodin uudelleenkäytettävyyden kuin C. C++:lla voi toki ohjelmoida samaan tyyliin kuin C:llä, eli käyttämällä aliohjelmia terästettynä C++:n ominaisuuksilla, mutta sillon musta kyllä menetetään hyvin suuri osa C++:n hyödystä. C++ on parhaimmillaan juuri olio-ohjelmoinnissa. Jos koodin uudelleen käytettävyys ja ohjelmapalikoiden toteutuksen yksityiskohtien pilottaminen muulta ohjelmalta on tärkeitä juttuja, niin sillon C++ on oikea valinta.
|
miksuh
| Maanantaina, 4. lokakuuta, 2004 - klo 16.47: | | JPQ: Jos sun on tarkotus tehdä tosta ohjelmapalikka, jota muut ohjelman osat voi käyttää, niin tee siitä luokka, josta voit sitten luoda olioita. Kun kerran käytössä on C++, niin ehdottomasti kannattaa käyttää luokkia eikä tehdä perinteisiä aliohjelmiin perustuvia moduleita. Eli jos C++:n käyttö kiinnostaa, ja jos se ei ole hirveän tuttu vielä, niin suosittelen lukemaan jostain C++ kirjasta tietoa luokista(class), olioista(objec), periytymisestä(inheritance) jne.
|
miksuh
| Maanantaina, 4. lokakuuta, 2004 - klo 16.48: | | Tosin no toi kyseinen koodinpätkä on aika pikkanen luokan koodiksi, mutta jos toss ei ole kaikki nii...
|
JPQ
| Maanantaina, 4. lokakuuta, 2004 - klo 19.49: | | miksuh: Aivan varmasti mutta ratkotaan ongelmaani eli käännetyn koodin kokoa. Koska ei tuo yli 100kilotavua oikein normaalilta kuulosta. PS. C++ on oikea valinta myös jos osa koodista valmis koodia joka on C++ koodia.
|
Jon
| Maanantaina, 4. lokakuuta, 2004 - klo 20.00: | | JPQ: teepäs kuvankäsittelijä tai teksturi C:llä ja C++:lla. Sitten katsotaan miten koodin määrät ja loppukoot mätsää ;)
|
Jon
| Maanantaina, 4. lokakuuta, 2004 - klo 20.25: | | miksuh: ". -s poistaa ne ylimääräset kamat siis jo käännettäessä." Jos tarkkoja ollaan, niin linkattaessa.
|
JPQ
| Maanantaina, 4. lokakuuta, 2004 - klo 22.35: | | Jon: no joo mututa silti luulen kun kokoja katson että tuo mun tänne postaama koodi kasvaa liian isoksi. Jollei niin C++ ei ole varmaankaan minua varten. Eli voisitteko yrittää kääntää sen ja katsoa miten suuri tulee. En usko että se on kamalan vaikeaa tuskin edes työlästä.
|
antime
| Tiistaina, 5. lokakuuta, 2004 - klo 1.29: | | Se mikä ohjelmassasi vie tilaa on staattisesti mukaan linkattu C++-kirjasto, eli kun käytät iostream-luokkia vedät mukaan paljon kirjastokoodia. Itse kirjoittamasi koodin osuus tuosta on häviävän pieni. Jos tämä todellakin on ongelma niin voit käyttää jaettua kirjastoa (jos vain on MOSsilla mahdollista, valaiskaa minua paremmin tietävät).
|
JPQ
| Tiistaina, 5. lokakuuta, 2004 - klo 4.47: | | antime: eikö siitä voi kääntää vain tarpeellista osaa ? kun luulisi että pieniä C++ softiakin on nähty. Kokeilen jos jaksan huomenna samaa koodia classic amigalla ja hisoft cpp kääntäjällä jos tulee alle 30kt niin uskoisin että joku mättää.
|
antime
| Tiistaina, 5. lokakuuta, 2004 - klo 9.17: | | Ei siinä koko kirjastoa olekaan, mutta niitä tarpeellisia osia on paljon enemmän kuin luulisi. Noin vertauksena, Linuxilla stripattu binääri ohjelmastasi on vähän yli neljä kiloa.
|
JPQ
| Tiistaina, 5. lokakuuta, 2004 - klo 9.55: | | antime: jotenkin tuo kuulostaa siltä mitä kokoa minäkin odotin odotin noin 3-5kilotavua. Eli uskaltainen päätellä että jotain on pielessä. PS. oliko x86 vai PowerPC Linux ?
|
antime
| Tiistaina, 5. lokakuuta, 2004 - klo 10.23: | | x86, PPC:llä tulos on noin kuusi kiloa. Kuten sanoin, ei siinä mitään ole pielessä. Kaikilla alustoilla ei ole mahdollista käyttää jaettua C++-kirjastoa (esim. Cygwin), jolloin overheadia tulee aina noin paljon. Jos MOSsilla voi käyttää jaettua kirjastoa tutki dokumentaatiota ja etsi tarvittavat switchit.
|
itix
| Tiistaina, 5. lokakuuta, 2004 - klo 12.50: | | MorphOS:lle ei ole jaettua kirjastoa.
|
JPQ
| Tiistaina, 5. lokakuuta, 2004 - klo 13.30: | | Vaikuttaa tällä menolla jos tuo mainittu koko (jos joku voi vahvistaa että tuo on oikea koko...) on oikein niin jätän C++:san rauhaan ainakin pikkuprojekteissani.
|
miksuh
| Tiistaina, 5. lokakuuta, 2004 - klo 14.34: | | Jon: Jep linkatessa toki.
|
miksuh
| Perjantaina, 15. lokakuuta, 2004 - klo 15.43: | | Muuten tuli mieleen yksi asia, kun tosta exen koosta oli kyse. Yleisesti PPC sama ohjelma PPC koodina on paljon suurempaa kuin m68k koodi, ohjelma saattaa olla jopa tuplasti niin iso PPC exenä. Toi on täysin normaalia ja johtuu siitä, että PPC on RISC prossu ja siksi yksinkertasetkin operaatiot vaatii useampia konekielikäskyjä, mikä taas kasvattaa exen kokoa. Toi ei tietenkään selitä kokoeroa c ja c++ ohjelman välillä, vaan siihen liittyy noi kaikki aikasemmin ketjussa mainitut jutut. Mutta siis ei voi sanoa että PPC kääntäjä tekis huonompaa koodia, kyseessä vaan on RISC prossun käskykannasta johtuva juttu.
|
miksuh
| Perjantaina, 15. lokakuuta, 2004 - klo 15.44: | | Eikä siis oikeen kannata ihmetellä miksi esim Sas/c.llä tehty m68k exe on pienempi kuin GCC:llä tehty PPC exe.
|
antime
| Perjantaina, 15. lokakuuta, 2004 - klo 16.12: | | Väittäisin että m68k:n ja PPC:n kokoerot johtuvat enemmin PPC:n kiinteän pituisista käskyistä. Toki käskykannallakin voi olla merkitystä, mutta PPC:llä ei niin paljon kuin MIPSillä, ARMilla ja muilla "puhtaimmilla" RISCeillä (huom: täyttä mutua).
|
miksuh
| Perjantaina, 15. lokakuuta, 2004 - klo 16.24: | | Niin joo toi voipi pitää paikkansa, en tunne PPC:tä niin tarkkaan että osaisin sanoo kumpi vaikuttaa enempi.
|
Jupp3
| Perjantaina, 15. lokakuuta, 2004 - klo 18.08: | | Ja toinen exen kokoon vaikuttava tekijä on tietenkin se, että muistia voi vain lukea ja kirjoittaa (esim. loogista operaatiota ei voi tehdä muistipaikalle kuten CISC-prosessoreilla)
|