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

133

    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. Laitetaas nyt kirjaimet tänne

      kuka kaipaa ja ketä ?
      Ikävä
      151
      10934
    2. Pieni häivähdys sinusta

      Olet niin totinen
      Ikävä
      52
      5220
    3. Taas ryssittiin oikein kunnolla

      r….ä hyökkäsi Viroon sikaili taas ajattelematta yhtään mitään https://www.is.fi/ulkomaat/art-2000011347289.html
      NATO
      45
      2433
    4. Missä olet ollut tänään kaivattuni?

      Ikävä sai yliotteen ❤️ En nähnyt sua tänään söpö mies
      Ikävä
      30
      2133
    5. Vanha Suola janottaa Iivarilla

      Vanha suola janottaa Siikalatvan kunnanjohtaja Pekka Iivaria. Mies kiertää Kemijärven kyläjuhlia ja kulttuuritapahtumia
      Kemijärvi
      13
      1701
    6. Valtimon Haapajärvellä paatti mäni nurin

      Ikävä onnettomuus Haapajärvellä. Vene hörpppi vettä matkalla saaren. Veneessä ol 5 henkilöä, kolme uiskenteli rantaan,
      Nurmes
      42
      1544
    7. Tiedän kuka sinä noista olet

      Lucky for you, olen rakastunut sinuun joten en reagoi negatiivisesti. Voit kertoa kavereillesi että kyl vaan, rakkautta
      Ikävä
      30
      1241
    8. Känniläiset veneessä?

      Siinä taas päästiin näyttämään miten tyhmiä känniläiset on. Heh heh "Kaikki osalliset ovat täysi-ikäisiä ja alkoholin v
      Nurmes
      35
      1166
    9. Daniel Nummelan linjapuhe 2025

      Kansanlähetyksen toiminnanjohtajan Daniel Nummelan linjapuhe tänään. Rehellistä analyysiä mm. evlut kirkosta ja piispo
      Luterilaisuus
      92
      935
    10. TÄSTÄ TAITAA TULLA SUOMEN HISTORIAN SUURIN USKONNONVAPAUDEN OIKEUDENKÄYNTI.

      Sinun täytyy hyväksyä se että jos sinä vetoat uskonnonvapauteen, silloin sinun tulee antaa myös muille vastaava vapaus o
      Hindulaisuus
      317
      892
    Aihe