Tarkoitus olisi saada harrastelijatuotoksia myös linux-yhteensopivaksi Visual Studio 2017 Community ohjelmasta. Grafiikan piirtoon on SFML-kirjasto. Onko toiveita saada toimimaan pienellä vaivalla vai pitääkö kääntää linuxissa?
Visual Studiosta linuxiin c++
19
105
Vastaukset
- Turbo-Urpo1
Ihan hupina testasin tuon sivun ohjetta https://www.sfml-dev.org/tutorials/2.5/start-linux.php ja ilman mitään hauilua käänty ensimäinen ohjelmani: https://i.postimg.cc/RVsYr52w/TURBON-SFML-TOIMII-014.png
Näin helpon alun vuoksi, tutkin kirjaston soveltamista paremmin, lähiaikoina.- harrastelija1
Kiitos vastauksesta. Joo tuo SFML toimii linuxissa mutta esitin kysymyksen huonosti. Eli miten hankalaa on saada VS c koodi toimimaan linuxissa? Ehkä Wine olisi helpoin? Täytyy testailla.
- Kvantti
Linuxissa on oma C -järjestelmänsä kuten tiedämme.
En ole tietoinen siitä, ettäkö MS IDE:ä olisi portattu Linuxiin.
Ks muuten https://www.academia.edu/38056805/Kabbalah.2.txt
Antti, harrastelija1 kirjoitti:
Kiitos vastauksesta. Joo tuo SFML toimii linuxissa mutta esitin kysymyksen huonosti. Eli miten hankalaa on saada VS c koodi toimimaan linuxissa? Ehkä Wine olisi helpoin? Täytyy testailla.
Kielihän on sama että ei siinä mitään eroa ole ja se on se ja sama millä editorilla kirjoittaa.
Eksoottinen buildijärjestelmä tai joku rajapinta/framework riippuvuus siellä vaikuttaa. Jos riippuvuudet rajoittaa SFML:n niin ja buildaa vaikka CMakella niin ei siinä kääntämisessä mitään esteitä pitäisi olla.
Tietysti kun kyse on natiivikoodista niin helpointa kääntää siellä missä halutaan toimivan. C ohjelmoijille suosittelen kyllä vahvasti SDL:ää ja kääntämistä Emscriptenillä niin saa käännettyä multimedioita niin, että sama käännetty binääri toimii joka puolella.- dfggdsgsg
M-Kar kirjoitti:
Kielihän on sama että ei siinä mitään eroa ole ja se on se ja sama millä editorilla kirjoittaa.
Eksoottinen buildijärjestelmä tai joku rajapinta/framework riippuvuus siellä vaikuttaa. Jos riippuvuudet rajoittaa SFML:n niin ja buildaa vaikka CMakella niin ei siinä kääntämisessä mitään esteitä pitäisi olla.
Tietysti kun kyse on natiivikoodista niin helpointa kääntää siellä missä halutaan toimivan. C ohjelmoijille suosittelen kyllä vahvasti SDL:ää ja kääntämistä Emscriptenillä niin saa käännettyä multimedioita niin, että sama käännetty binääri toimii joka puolella.Mitenkäs muuten tuo Qt? Eikös se kääntyisi samasta koodista mille vaan?
Itse olen ihan harrastajakoodaaja vaan mutta tuolla teen niin sitten sama ohjelma toimii tismalleen samannäköisenä Raspberryssä kun sen siinä vaan kääntää.
Qt on aloittelijalle niin pirun helppo ympäristö, että sillä saa samantien toimivaa aikaiseksi.
Mikäänhän ei tietenkään takaa ettäkö tuotos olisi hyvän ohjelmointitavan mukainen.. - ei-jatkoon
dfggdsgsg kirjoitti:
Mitenkäs muuten tuo Qt? Eikös se kääntyisi samasta koodista mille vaan?
Itse olen ihan harrastajakoodaaja vaan mutta tuolla teen niin sitten sama ohjelma toimii tismalleen samannäköisenä Raspberryssä kun sen siinä vaan kääntää.
Qt on aloittelijalle niin pirun helppo ympäristö, että sillä saa samantien toimivaa aikaiseksi.
Mikäänhän ei tietenkään takaa ettäkö tuotos olisi hyvän ohjelmointitavan mukainen..Kuvitteletko että M-Kar jotain ymmärtää asiasta, kun sille vastailet
- fdsgdfgsdfgfdgf
ei-jatkoon kirjoitti:
Kuvitteletko että M-Kar jotain ymmärtää asiasta, kun sille vastailet
kyllä se oman kokemukseni perusteella noista eniten täällä tietää.
dfggdsgsg kirjoitti:
Mitenkäs muuten tuo Qt? Eikös se kääntyisi samasta koodista mille vaan?
Itse olen ihan harrastajakoodaaja vaan mutta tuolla teen niin sitten sama ohjelma toimii tismalleen samannäköisenä Raspberryssä kun sen siinä vaan kääntää.
Qt on aloittelijalle niin pirun helppo ympäristö, että sillä saa samantien toimivaa aikaiseksi.
Mikäänhän ei tietenkään takaa ettäkö tuotos olisi hyvän ohjelmointitavan mukainen..Se kääntyy aika moneen paikkaan joo. Tuo SDL mahdollistaisi sen, että toimii uudelleenkääntämättä joka puolella kun kääntää .wasm muotoon ja sitä sitten ajaa selaimet, ja saa myös käännettyä natiivia. Temppu onnistuu Emscriptenillä.
Raspberry Pi:ssä nyt varmaan haluaa vähän viritellä koodia että siihen sitten kääntäisi vaikka natiivin mutta se ei tarvitsisi koodiin muutoksia. SDL:n saa käännettyä natiiviksi ja selaimen ajettavaksi: https://www.youtube.com/watch?v=eh-yy7f1bvQ
Qt on kiva mutta se ei kuitenkaan ole ideaalinen siirrettäviin grafiikkaohjelmiin.
- harrastelija1
Hyvinhän se onnistui. Kääntyi suoraan Code Blocksilla kunhan sai nuo SFML kirjastot liitettyä siihen. Yksi sähläys oli kun en tajunnut että linuxissa (Ubuntussa)tiedostot on "case-sensitive" esim .PNG ja .png päätteet viittaavat eri tiedostoon.
- dfsgsdfgsdfgf
>>"case-sensitive>>
juup, tuo tulee usein vastaan kun arduinon kirjastoja käyttää ja ne on monet windows-miesten koodaamia. itse kirjasto toimii ihan ok, kun käy säätämässä nimet yhteneviksi koodin kanssa. - hauskojaROPOTTEJA
Huomasin että lasten roboteissa missä käytetään alustana arduinon juttuja, niin: huomattavasti muistuttaa jotain Visual BASIC -kieltä se niiden koodi niissä roboteissa.
Kokeilimme sellaista erästä että miten se seuraa se robotti esimerkiksi lattiaan piirrettyä viivaa pohjassa olevalla anturillaan, yrittää seurata, mutta kun tuollaisissa voi olla niitä antureita millä "näkevät" mitä näkevätkin ja osaavat "kääntyä", niin iso labyrintti oikein teipeistä lattiaan ja kokeilee pääseekö se robotti sieltä läpi ja missä ajassa?
Hauskoja robotteja on jo lapsillakin.
- reaaliaikafyysinenRAM
Oikein ikävimpiä virheilmoituksia on sitten kun grafiikkakiihdyttien ja sun muiden kanssa koodaat jotain Direct3D-ajureita sun muita, että DMA-muistisiirron virhe: jossain fyysisessä muistissa joku tilattu DMA (Direct Memory Access) -ajoivat päällekäin muistisiirroissa jossain :XD
Ohjelmointiympäristö ilmoittaa että: DMA Buffer Overrun ERROR!
- Olet tilannut seuraavalta vapaalta DMA-kanavalta muistisiirtoja ja jossain on sattunut virhe :D- tehokastakoodia
Sitten vielä kun olet tilannut kiihdyttikorttien kanssa jotain RISC-prosessorien koodeja DMA:n kanssa että siirretään DMA:n avulla niitä suoritettavaksi keskusmuistin fyysisiin osoitteisiin, voi vahingossa jäädä joku DMA:n siirto päälle jos et katkaise sitä, mitä tahansa voit tehdä muuta, ja silti on joku DMA:lta tilattu muistisiirto joka on silti huomaamattomana päällä koko ajan :D
Vähän ehkä niin yksityiskohtaisia juttuja, hardware-tason c-juttuja.... no vielä sanon että: DMA-1 on numeroltaan sellainen, että se ohjaa sitten toiselle vapaalle DMA-kanavalle sen muistisiirron fyysisistä osoitteista toisiin sitten, jos on prioriteetti sillä siirrolla 1, DMA 0 on tietystikin keskusmuistin päivityksessä.... tehokastakoodia kirjoitti:
Sitten vielä kun olet tilannut kiihdyttikorttien kanssa jotain RISC-prosessorien koodeja DMA:n kanssa että siirretään DMA:n avulla niitä suoritettavaksi keskusmuistin fyysisiin osoitteisiin, voi vahingossa jäädä joku DMA:n siirto päälle jos et katkaise sitä, mitä tahansa voit tehdä muuta, ja silti on joku DMA:lta tilattu muistisiirto joka on silti huomaamattomana päällä koko ajan :D
Vähän ehkä niin yksityiskohtaisia juttuja, hardware-tason c-juttuja.... no vielä sanon että: DMA-1 on numeroltaan sellainen, että se ohjaa sitten toiselle vapaalle DMA-kanavalle sen muistisiirron fyysisistä osoitteista toisiin sitten, jos on prioriteetti sillä siirrolla 1, DMA 0 on tietystikin keskusmuistin päivityksessä....Noi laitteistonläheiset jutut kannattaa eristää lähes aina, että ohjelmointi onnistuu mahdollisimman korkealla tasolla ilman typeriä bugeja.
Parhaimmillaan tarkoittaa sitä, että ei esimerkiksi tarvitse tehdä mitään kopiointia muistissa kun korkean tason kieli tietää jonkun muistialueen muuttumattomaksi ja voikin automaattisesti käyttää viittauksia.
Jos sitten on suorituskyky todella kriittistä niin on kyllä yksi mahtiratkaisu: Tekee ensiksi korkean tason kielellä toimimaan, ja sitten hinkkaa saman uusiksi C:llä ja verifioi toteutuksen korkeantason versiota vasten.
Tuolla tavalla saa tehtyä bugittomia ohjelmia.- näyttihienolletuo
Olisi kyllä mukava kun olisi näitä RISC-kiihdyttien ja ajureiden ohjelmoijia Linux-puolellakin, kun testailin Ubuntun uusinta, näytti aivan fiksulle tuo, mutta kaikki ajurit puuttuvat, "kengät on mutta nauhat puuttuvat" -tyyliiin.
Microsoftillahan on erittäinkin hyvä netistäkin saatava apu ohjelmointiin, itseasiassa sitten jotkut todella rankkoja hardware-koodia tarvitsevat jutut, ja tehokkaat vaativat aina tutustumista kyseisen kiihdytinkortin omaan sisäiseen koodiin jne..
Oikeasti ihastuinkin vähän Ubuntun ulkonäköön, mutta sitten tökkäsi siihen se tutustuminen, kun ei saa edes nettiyhteyttä jos ei ole nettiyhteyttä, vähän kuin myyt sitten BluRay-levyn CDROM-aseman omistajalle... näyttihienolletuo kirjoitti:
Olisi kyllä mukava kun olisi näitä RISC-kiihdyttien ja ajureiden ohjelmoijia Linux-puolellakin, kun testailin Ubuntun uusinta, näytti aivan fiksulle tuo, mutta kaikki ajurit puuttuvat, "kengät on mutta nauhat puuttuvat" -tyyliiin.
Microsoftillahan on erittäinkin hyvä netistäkin saatava apu ohjelmointiin, itseasiassa sitten jotkut todella rankkoja hardware-koodia tarvitsevat jutut, ja tehokkaat vaativat aina tutustumista kyseisen kiihdytinkortin omaan sisäiseen koodiin jne..
Oikeasti ihastuinkin vähän Ubuntun ulkonäköön, mutta sitten tökkäsi siihen se tutustuminen, kun ei saa edes nettiyhteyttä jos ei ole nettiyhteyttä, vähän kuin myyt sitten BluRay-levyn CDROM-aseman omistajalle...Raudastahan se riippuu... Ei kaikki softa ole kaikelle.
Itse ottaisin tuohon Raspberry pin ja Rasbianin jos haluaisin rautaa hinkata.
- sillälaillajoo
Tuollainen juttu on todellakin niin että: ensin kysyt väylien ajurilta tietoja, sitten se palauttaa emolevyn tietoja mitä laitteita on kytketty ja minkälaisia ominaisuuksia niillä on.... tulee pitkä lista sitten mitä voit määrätä ohjelmoijana mitä haluaisit niiden tekevän...
Emolevyn kaikki liitännät tulee väylien ajurit ja DMA-kanavat sun muut listassa tulee silloin, niistä vain valikoit sitten mitä haluat millekin tehtäväksi laittaa...
DMA:n muistisiirroissa voi sattua jotain hassuja vahinkoja todellakin jos tilaat joitain erillisiä nopeita muistisiirtoja päällekäin suoraan erillisiltä kanavilta kiihdytinpiireille muistisiirtoja prosesorin ohi.. :D - ohjelmoiitseheh
Huvittavaa kyllä itsellekin tuollainen, kun laitat pyynnön emolevyn ajurille että: mitä laitteita on kiinnitetty tälläkin hetkellä tietokoneeseen., emolevylle hardia laitat, tulee litaniaa että tällaisia grafiikkakiihdyttimiä ja kortteja on tällä hetkellä kytkettynä koneeseen _D
- fyysinenaikajamuisti
Tuollaisissa jutuissa noiden DMA-muistisiirtojen kanssa on sitten itse tarkkailtava niitä jotta muistiosoitteet eivät mene päällekäin: real-time, physical memory addresses :D
Ikävä jos DMA-siirrot ajavat vahingossa päällekäin vaikka prosessorin cache-muistissakin, vahingossa :D
Ketjusta on poistettu 1 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Ja taas ammuttu kokkolassa
Kokkolaisilta pitäisi kerätä pois kaikki ampumaset, keittiöveitset ja kaikki mikä vähänkään paukku ja on terävä.726348- 1385772
Helena Koivu on äiti
Mitä hyötyä on Mikko Koivulla kohdella LASTENSA äitiä huonosti . Vie lapset tutuista ympyröistä pois . Lasten kodista.4863654Ovatko naiset lopettaneet sen vähäisenkin vaivannäön Tinderissa?
Meinaan vaan profiileja selatessa nykyään valtaosalla ei ole minkäänlaista kirjoitettua tekstiä siellä. Juuri ja juuri s1202059- 391361
Suomi vietiin Natoon väärin perustein. Viides artikla on hölynpölyä. Yksin jäämme.
Kuka vielä uskoo, että viides artikla takaa Suomelle avun, jos Suomeen hyökätään. Liikuttavasti täällä on uskottu ja ved4021345- 731173
Sydämeni on sinun luona
Koko ajan. Oli ympärilläni ketä oli niin sinä olet vain ajatuksissa ja tunteissa. En halua muiden kosketusta kuin sinun471034Trump ja Venäjä
Huomasitteko muuten... Käytännössä ainoat valtiot, joille Trump EI eilen asettanut typeriä tariffejaan, olivat Venäjä ja110952Jatkuva stressitila
On sinun vuoksesi kun en tiedä missä mennään mutta tunteeni tiedän ainoastaan56950