Kirjoittaja |
Viesti |
JPQ
| Sunnuntaina, 30. tammikuuta, 2005 - klo 4.31: | | Mitens debugin saa gccstä pois ? ja miten nopeuden optimoinnin päälle ? ja siis morphos on alustana.
|
antime
| Sunnuntaina, 30. tammikuuta, 2005 - klo 10.18: | | RTFM?
|
Joanna
| Sunnuntaina, 30. tammikuuta, 2005 - klo 10.58: | | Yleinen optio käännöksen optimoinnille on: -O# Eli Iso Oo kirjain ja risuaidan paikalle haluttu optimointimäärän numero (0,1,2,3). Mutta, ainakin aiemmin (siis siitä on *aikaa*) optimointien päällelaiton jälkeen piti ohjelman toimiminen tarkistaa hyvin perusteellisesti koska optimoinnilla oli paha tapa sotkea koodia.
|
itix
| Sunnuntaina, 30. tammikuuta, 2005 - klo 16.38: | | gcc -noixemul -fomit-frame-pointer -O3 Noilla pitäisi selvitä.
|
JPQ
| Sunnuntaina, 30. tammikuuta, 2005 - klo 17.50: | | Joanna: hyvä tietää ja toiseksi nyt on nopeus testin käännös kyseessä että voimme kaverin kanssa verrata koneitamme. antime: sopii toki manuaalin lukukin jos tietää missä se on... ja headerit jotka lataan on iostream.h, stdio.h, math.h ja järjestys on tuo. cout temppuilee myös ihan helloworld esimerkin tasoisessa. PS. minusta ihan lähiaikoina nämä kaksi toimi ok.
|
JPQ
| Sunnuntaina, 30. tammikuuta, 2005 - klo 18.36: | | Eli tämä ei käänny: #include #include #include main() { float a; printf("syötä numero\n"); cin >>a; printf("%f",floor(a)); } Tulee tälläiset virheet: /t/cchQolu8.o: In function `main': /t/cchQolu8.o(.text+0x26): undefined reference to `cin' /t/cchQolu8.o(.text+0x2a): undefined reference to `cin' /t/cchQolu8.o(.text+0x30): undefined reference to `istream::operator>>(float &)' collect2: ld returned 1 exit status PS. olisi kiva päästä erästä ideaa testimään mutta jos luvun lukeminen käyttäjältä mättää niin siitä ei oikein tule mitään. Tutkinkin toimiiko tänään edes cout.
|
Jupp3
| Sunnuntaina, 30. tammikuuta, 2005 - klo 19.11: | | cin ja cout taisivat vaatia conio.h:n (joskus joutui koulussa käyttämään). Itse käytän mielummin printf():ää, suosittelen sinullekin. Niin, ja kannattanee käyttää makefilejä, niin ei joudu joka kerta kirjoittamaan sen enempää kuin make
|
JPQ
| Sunnuntaina, 30. tammikuuta, 2005 - klo 20.42: | | Jupp3: jaa ja cin ainakin mieleen enempi kuin c tyyli jos floatteja luen.
|
antime
| Sunnuntaina, 30. tammikuuta, 2005 - klo 21.18: | | Kerro vielä miten yrität kääntää tuota. Linkkeri nimittäin tuossa valittaa ettei löydä standardikirjaston funktioita.
|
JPQ
| Sunnuntaina, 30. tammikuuta, 2005 - klo 23.18: | | ohjelman lähdekoodin hakemistossa tyyliin gcc muumi.cpp. tähän asti toiminut ok.
|
antime
| Sunnuntaina, 30. tammikuuta, 2005 - klo 23.31: | | Käytä mieluummin g++:aa C++-koodin kääntämiseen, se mm. linkittää automaattisesti osan tarvittavista kirjastoista. Muuten sinun pitää itse välittää tarvittavat optiot linkkerille.
|
JPQ
| Maanantaina, 31. tammikuuta, 2005 - klo 0.02: | | antime: jostain syystä ei näyttänyt olevan kokeiluni mukaan vaikutusta virheisiin.
|
Palle
| Maanantaina, 31. tammikuuta, 2005 - klo 7.16: | | -lstdc++ vipu mukaan.
|
Jupp3
| Maanantaina, 31. tammikuuta, 2005 - klo 11.05: | | hmm... Eikös g++ vaatinut jonkun päivityksen SDK:hon?
|
JPQ
| Maanantaina, 31. tammikuuta, 2005 - klo 14.08: | | Jupp3: täysin toimiaikseen kait? mutta nuo toimi vielä minusta jokin aikaa sitten. Ja en ole tuohon ohjeita saanut olen kyllä kysynyt eräältäkin asianomaiselta jonka tiedän varmasti MorphOS koodaavan. Nimen saatte arvata itse.
|
Jon
| Maanantaina, 31. tammikuuta, 2005 - klo 15.09: | | JPQ: koitas laittaa include-rivien jälkeen: "using namespace std;", ilman sitaatteja toki. Tai sitten käyttää cin/coutia näin: std::cin, std::cout... nipotusmoodi päälle: itse asiassa tuo on linkkerin virhe, ei kääntäjän Ja ehdottomasti käytä g++:aa, kuten jo muutkin totesivat.
|
JPQ
| Maanantaina, 31. tammikuuta, 2005 - klo 15.22: | | Jon: nipottaa saa muttei minulle eli en tiennyt ja tuo oikomista nipotus on se että pilkkaat minut maan rakoon haukkuen samalla kun kerrot asian oikean laidan. PS. täytyy noita ideoitasi kokeilla mutta olisi kiva silti käyttää cin ja cout juttuja niinkuin moni muu käyttää sattuneista syistä. Eli valmis koodin,esimerkkien ja jos teemme kaverin kanssa koodin vaihtoa. Eli jotain mättää jossain mutta mitä?
|
Jon
| Maanantaina, 31. tammikuuta, 2005 - klo 15.34: | | JPQ: no näytäs sitten esimerkki miten joku käyttää cin/coutia? Tuo nimiavaruus on määriteltävä, eli se ei ole ihan oma "ideani"
|
antime
| Maanantaina, 31. tammikuuta, 2005 - klo 15.36: | | Jon, jos käyttää .h-päätteisiä yhteensopivuusheadereitä kuten JPQ tuolla ylhäällä kertoo käyttävänsä niin ei tarvitse välittää std-nimiavaruudesta. Virheilmoitus olisi myös toisenlainen eikä koodi menisi linkkerille asti.
|
Jon
| Maanantaina, 31. tammikuuta, 2005 - klo 16.37: | | I stand corrected.
|
Jon
| Maanantaina, 31. tammikuuta, 2005 - klo 16.54: | | Tosin kannattaisi ehkä käyttää standardin mukaisia header-tiedostoja. Ilmeisesti nuo .h-päätteiset ovat jo melko vanhaa kauraa. http://www.devx.com/tips/Tip/14447
|
Palle
| Maanantaina, 31. tammikuuta, 2005 - klo 19.12: | | gcc muumi.cpp -lstdc++ Eli standardi c++ kirjasto pitää linkittää mukaan, että linkkeri löytää tuon cin:in. Ja tosiaan noita vanhan tyylisiä headereita kannattaa välttää.
|
JPQ
| Maanantaina, 31. tammikuuta, 2005 - klo 21.14: | | Palle: eikös g++een pitäisi löytää se suoraan sekin valittelee minusta kun tässä näitä kokeilin.
|
Frn
| Perjantaina, 18. maaliskuuta, 2005 - klo 13.23: | | Törmäsin vastaavanlaiseen ongelmaan SDK:n kanssa, eli linkkerillä on ongelmia c++:n kanssa: "undefined refernce to cout". Kokeilin noita täältä löytämiä vinkkejä, mutta sama tulos. Tarvitsiko siis SDK jonkin päivityksen kuten mainittiin vai selviääkö joillain optioilla?
|
Jon
| Lauantaina, 19. maaliskuuta, 2005 - klo 12.22: | | Frn: mikä SDK? OS4:n SDK:lla toimii ainakin. Julmetun iso exe tulee vain :/
|
itix
| Lauantaina, 19. maaliskuuta, 2005 - klo 13.41: | | Höh? Täällä ainakin toimii. g++ -noixemul test.cpp -lstdc++ Tuolla tuo JPQ:n koodi kääntyi suoraan. Binääristä tulee kyllä melko iso (165K) mutta sille ei oikein voi mitään.
|
Frn
| Lauantaina, 19. maaliskuuta, 2005 - klo 16.27: | | Jon: MOS SDK on kyseessä. itix: Kokeilin vastaavia jo aiemmin, mutta päätin kokeilla hieman lisää --- > g++ -noixemul hello.cpp -lstdc++ [tässä vaiheessa odottelun jälkeen enteriä, kun mitään ei tapahdu] /gg/ppc-morphos/bin/ld: cannot open -lstdc+: No such file or directory collect2: ld returned 1 exit status --- Eli jostain syystä viimeinen "+" tipahtaa tajunnasta. Pistinpä nyt kokeeksi spacen tuonne komentorivin loppuun ja homma toimi niinkuin pitikin. Hyviä arvauksia miksi näin käy? HelloWorldista tuli 491784 tavuinen, joten ei milään keijukainen. Ilmeisesti koko on pakollinen paha? Heh. Tietysti tällaiset ongelmat sattuvat juuri kun olisi hirveä kiire. Mr. Murphy oli sen verran huolimaton, että sain eilen homman tehtyä jopa 10min ennen kun sen piti olla valmis. Kiitoksia kovasti vinkeistä, niistä oli apua, vaikka ongelma olikin tällä kertaa erikoinen.
|
itix
| Lauantaina, 19. maaliskuuta, 2005 - klo 17.12: | | Tuo "+" viimeisenä kirjaimena on joku AmigaShellin ominaisuus mutta en kyllä muista mikä. Joka tapauksessa jos kirjoitat kolme plusmerkkiä kahden sijaan se toimii ok. Riippuu myös Shellistä sillä MUICON:ssa (omilla asetuksillani) viimeistä plusmerkkiä ei tiputeta pois. Exen saa pienemmäksi strippaamalla: strip --remove-section=.comment alkuperäinen -o uusi-stripattu Kannattaa aina säilyttää strippaamaton binääri debuggausta varten.
|
Frn
| Lauantaina, 19. maaliskuuta, 2005 - klo 19.24: | | itix: enpä ole tuohon aiemmin törmännyt ja shellin feature tuli mieleen vasta kun tarkemmin katsottuani se viimeinen plussa sieltä puuttui. Aiemmin käyttämäni g++ variantti osasi myös automaagisesti linkata nuo libit. Täytyy kai laittaa tuo muicon vakituiseen käyttöön, mikäli siitä ei mitään isompia haittoja aiheudu. stripillä HelloWorld meni 147060 tavuun, eli ei mitään bootblock-tavaraa vieläkään. Vähän auttaa silti.
|