Visual Studiosta linuxiin c++

harrastelija1

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?

19

125

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Turbo-Urpo1
      • 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

      • 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

    1. Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa

      En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod
      Ikävä
      22
      5234
    2. Huomenta ihana

      Kauniskasvoinen ihanuus 😘 saan sut vielä
      Ikävä
      25
      4398
    3. Hei rakas...

      Miten on työpäivä sujunut? Rakastan sinua 💗
      Ikävä
      28
      2541
    4. Edelleen sitä on vaikea uskoa

      Että olisit oikeasti rakastunut muhun
      Ikävä
      34
      2264
    5. Toiveikas vai toivoton

      torstai? Ajatuksia?
      Ikävä
      37
      2008
    6. Vitsi mihin menit. Heti takasin.

      Mä näin sut tuu takasin! Oli kiire, niin en ehtiny sin perään!
      Ikävä
      15
      1928
    7. En ole koskaan kokenut

      Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka
      Ikävä
      19
      1617
    8. Mukavaa päivää

      Mun rakkauden kohteelle ❤️ toivottavasti olet onnellinen
      Ikävä
      12
      1541
    9. Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...

      Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons
      Suomalaiset julkkikset
      21
      1277
    10. Kerranki asiat oikein

      Ilkka ja muut pienpuolueeet...teitte hyvän työn kun valitsitte pätevän henkilön virkaan eikä kepulle passelia!! Jatkakaa
      Haapavesi
      10
      1194
    Aihe