C++ koodaus ubuntussa?

evo n00b

Eli siis tarkoitukseni on opetella ohjelmointia ubuntussa, mutta ongelmana on se että olen aloittelija linuksin käytössä. Koodia olen opetellut kirjoittamaan windowsissa, mutta en tiedä miten tämä käytännössä tapahtuu ubuntussa. Opettelen mielummin koodaamaan ubuntussa, koska se toimii muuten huomattavasti paremmin, kuin windows. Eli siis olen windowsissa käyttänyt dev c ja tarkoitus olisi siirtyä ubuntuun, mutta en löydä ohjelmaa ja olen muutenkin aika hukassa.

35

1268

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Uninen

      on ihan pätevä. tai vim. tai vaikka KDevelop.
      gcc on jokaisessa mukana tai ainakin asennettavissa.

      "en tiedä miten tämä käytännössä tapahtuu ubuntussa. "

      Eipä se koodaus erilaista ole, paitsi jos olet erehtynyt sekoilemaan MFC:n kanssa.

    • netbeansin

      C työkalua.

    • asdf12344312

      eclipse tai joku muu ide (integrated development environment) jos haluat "kaikki yhdessä paketissa" ratkaisun. "Wanha" mutta ihan hyvä tapa on valita itse itselleen mieleiset työkalut: Hyvä tekstieditori (vim [ja ehkä eclim lisäksi], emacs, jedit, ...), build zydeemi (cmake, autotools tms.), kääntäjä (gcc, icc). Ctags tai etags kahden ensimmäisen editorin kanssa lienevät myös tarpeellisia. -Wall vipu gcc:lle on semi-pakollinen mielestäni.

    • Matikkamies

      Muita käyttökelpoisia työkaluja on Valgrind ja GDB. Valgridilla voi tarkistaa, enko ohjelmassa muistivuotoja ja GDB on symbolinen virheidenjäljitin Linuxille. Ehkä aloittelijalle sopivampi symbolinen virheidenjäljitin on DDD.

      • sanonko_mistä

        No, turbo-c:llä opitun mukavuuden jälkeen voin sanoa, että gdb ei ole se, mitä luultavasti haluat käyttää. Ainakin siihen tarvitsee jonkinlaisen kurssin läpikäymisen, että siitä on jotain hyötyä. ddd:stä ei myöskään ole juuri hyötyä, mikäli ei ole opetellut mitään debuggauksesta gdb:llä..


    • ..että Ubuntu on C ohjelmoinnissa taivas Windowsin jälkeen.

      GCC on kääntäjä mikä toimii, olen käyttänyt sitä jo 14v. Aivan loistava softa! Lukaiset vaan dokumentaation läpi ja alat hommiin. Koodin nyt kirjoittaa millä tahansa.

    • GCC on yksi parhaista kääntäjistä. Mutta sitä en ymmärrä miksi C kieltä joka monella tavalla hankala. Geany voisi olla kokeilemisen arvoinen jos tottunut käyttämään Dev C

    • Ubuntuija

      Ubuntuun olen paukutellut vaan "gcc sorsa.cpp -o sorsa" ja niin on ollut hyvä. Ihan vakioasennus, ei mitään ylimääräistä.

    • How_about

      Code::blocks ide.

    • TheRealJ

      Kannattaa harkita myös Qt Creatoria. Oikein toimiva kehitysympäristö ja Qt antaa pätevän pohjan ohjelmistokehitykseen.

      • dsfgsdgdsgdsg

        Ja tuo on myös helppo. Itse pääsin heti kärrylle, vaikka aiempaa kokemusta oli vain Visual Basicista vuosikymmenen takaa.
        Samalla ympäristöllä tekee koodin Windowsiin, Linuxiin, Raspberrylle, digiboksiin, autoon ja leivänpaahtimeen.
        Tuo on todella käyttäjäystävälliseksi saatu!


      • TheRealJ
        dsfgsdgdsgdsg kirjoitti:

        Ja tuo on myös helppo. Itse pääsin heti kärrylle, vaikka aiempaa kokemusta oli vain Visual Basicista vuosikymmenen takaa.
        Samalla ympäristöllä tekee koodin Windowsiin, Linuxiin, Raspberrylle, digiboksiin, autoon ja leivänpaahtimeen.
        Tuo on todella käyttäjäystävälliseksi saatu!

        Jep. Tuo käyttöjärjestelmäriippumattomuus on oikein kätevää, kun samasta lähdekoodista saa helposti tehtyä version monelle eri systeemille. Ilmeisesti Qt:tä käytetään myös monissa kaupallisissa ohjelmistoissa. Esimerkiksi Wikipedian mukaan mm. Adobe Photoshop Elementsissä on käytetty Qt:tä.


      • sdfdsssd
        TheRealJ kirjoitti:

        Jep. Tuo käyttöjärjestelmäriippumattomuus on oikein kätevää, kun samasta lähdekoodista saa helposti tehtyä version monelle eri systeemille. Ilmeisesti Qt:tä käytetään myös monissa kaupallisissa ohjelmistoissa. Esimerkiksi Wikipedian mukaan mm. Adobe Photoshop Elementsissä on käytetty Qt:tä.

        "Qt (lausutaan virallisesti kuten englannin kielen sana "cute") on alustariippumaton ohjelmistojen ja graafisten käyttöliittymien kehitysympäristö."
        Eikä mikään ohjelmointi kieli.


      • jckxkxkxxl

        ketjun aihe onkin "C koodaus ubuntussa".
        ja sitä qtcreatorilla voi tehdä vallan mainiosti.

        omaksi kielekseenhän sitä ei kukaan ole väittäänytkään, joskaan et qt-projektia suoraan gcc:llä voi kääntää..


    • Turbo-Urpo1

      Non-niin, non-niin, mitäs me ollaan ohjelmoitu Qt Creatorilla, minä olen tehnyt tälläisen keskitys esimerkin, jossa ikkuna avautuu ruudun keskelle, ja ikkunan sisällä oleva Label-komponetti on myös keskitetty: https://i.postimg.cc/pdHs47dV/Keskitys_esimerkki_164.png

      🤓 Saa pistää paremmaksi 🤓

      • Turbo-Urpo1

      • Saa helpostikin paremman kun jättäisi sen Qtcreatorin pois...

        Ysäri HTML label ja C :lla sijainnin laskenta on aika järkkyä. Saman tien HTML koko kuvaukseen.

        C sopii paremmin vähän eri juttuihin.


      • TheRealJ
        Turbo-Urpo1 kirjoitti:

        Ja tuossa ei ole käytetty apuna Qt 4 Designer liittymää luodessa, vaan kaikki löytyy tästä main.cpp tiedostosta: https://i.postimg.cc/Kv7gR92w/Valinta_165.png

        Designeriä ei tosiaankaan ole mikään pakko käyttää, vaan käyttöliittymän voi tehdä aivan ohjelmallisesti luomalla koodissa komponentit ja layoutit. Jos käyttöliittymä on kovin monimutkainen voi kuitenkin olla parempi käyttää designeriä (muuten koodista voi tulla aika sekava). Designerin etuna on, että jos haluaa muuttaa käyttöliittymää se onnistuu aika helposti, kun taas monimutkaisen ohjelmallisesti luodun käyttöliittymän muokkaus voi olla aika kimuranttia.

        Käyttöliittymän luontiin myös QML (vai onko se nykyään Qt Quick) on harkitsemisen arvoinen. Sillä käyttöliittymän voi määritellä Javascriptin tyylisellä skriptillä. Itse tein sillä esmes yhdessä välissä jonkinlaisen käärmepelin pohjan, jossa käärme kääntyi pehmeästi 90 asteen käännösten sijaan. Ja hakiessani Elektrobit Automotivelle tein näytteeksi QML/Qt sovelluksen, joka simuloi jonkinlaista jarru/kaasu/vaihdesysteemiä.

        Ja M-Karille: HTML on kyllä ihan kätevä, kun sillä tehtyä käyttöliittymää voi käyttää millä tahansa standardinmukaisella selaimella. Tietenkin jos on tarpeen tehdä laiteläheisiä juttuja se ei välttämättä ole paras vaihtoehto Mutta moniin tarkoituksiin (jos tarvitaan graafista käyttöliittymää) HTML ja erinäiset standardit back-end jutut ovat ihan käytännöllisiä.


      • Käyttöliittymä harvemmin on laiteläheinen...

        Autossa voi joku QML olla paikallaan. Ei siksi että se olisi yhtään lähempänä laitetta vaan se, että kyseessä on helposti turvallisuuden kannalta merkitysellinen kohde ja Qt tekee bisnestä sen kanssa ja myyvät kyseisen alan standardeihin tehtyä palikkaa. Vastaavaa juttua on myös esimerkiksi sairaalavehkeissä.

        Tapauskohtaisia. 95% tilanteissa standardit ovat sopivampia mutta onhan noita erikoiskohteita toki.


    • 534534534

      Jokos Linuxille löytyy sellainen C IDE missä on mukana käyttöliittymän rakentaminen ja integroitu debuggeri millä voi debugata monisäieohjelmiakin ilman koneen kaatuilua kuten vaikka Borland Builderissä oli 90-luvun alussa?

      Aikaahan on tietysti vasta mennyt noin 30 vuotta ja tunnetusti tämä tietojenkäsittelyala menee hitaasti eteenpäin.

      • Turbo-Urpo1

        Qt Creator kääntää ja Qt 4 Designer on liittymän suunnitteluun.
        Borland C Builder sisältää myös nuo Qt -kirjastot.


      • Turbo-Urpo1

        Nämä vanhemmat Code::Blocks ja CodeLite kääntäjät käyttää käyttöliittymän suunnitteluun
        wxCrafter ohjelmaa.

        Minkälainen C ohjelmantekijä sinä olet jollet noita jo entuudestaan tiennyt. Nyt voisit syventää tietämystäsi ja hakea mitkä kaksi käyttöliittymän suunnitelu ohjelmaa jätin mainitsematta, nimen omaan linux ympäristöön kuuluvia. Tai anna olla, kun 30 vuotta on mennyt sinulta etkä ainuttakaan ole löytänyt, tuskin sitä kukaan jaksaa odottaa että edes vinkistä mihinkään kykenet.


      • Turbo-Urpo1

        Eikös jo KDE 1.0 vuonna 1998 ollut joku GUI -liittymän suunnittelu ohjelma, en ole varma mutta viimmeistää versiossa 3 jo oli, muistelen sitä käyttäneeni, ja versiossa 4 luovuin tuosta ympäristöstä sen työpöydä käydessä liian raskaasi silloin minulla olleelle koneelle.


      • "Jokos Linuxille löytyy sellainen C IDE missä on mukana käyttöliittymän rakentaminen ja integroitu debuggeri millä voi debugata monisäieohjelmiakin ilman koneen kaatuilua kuten vaikka Borland Builderissä oli 90-luvun alussa?"

        90-luvulta saakka ollut. Paitsi puhut höpöjä tuosta monisäieohjelmien debuggauksesta, sillä 90-luvun alussa käytännössä ajettiin useita prosesseja rinnakkain, ei säikeitä. Jossain tilanteessa saattoi olla coroutine millä saatiin prosessin sisällä rinnakkaistettua ilman käyttöjärjestelmien säikeitä.

        Säikeet tuli 90-luvulla mutta olivat tunnetusti bugisia käyttöjärjestelmätasolla siellä missä niitä oli, kuten esimerkiksi Windows 95, ja silloin oli tosiasiassa parempi olla ilman säikeitä ja keskittyä johonkin muuhun.

        Mutta tuossa "C käyttöliittymä" olet auttamatta myöhässä kun noita harrasteltiin joskus vuosien 1992-2006 välillä. Tässä on viimeiset 12v ollut parempia välineitä oikeastaan joka mittarilla kuin C , sinne käyttöliittymäpuolelle.


    • mee_pois

      Eli et voi oppia koodaa ku käytät ELI-alotust.

      • alkeiset

        Ei näin vaan kääntäjät (kehittyy)
        Täysin virheetön c kieli joka tehty kääntäjälle (gcc) 3.3.xxx
        ei käänny käänny kääntäjällä 4.0.xxxx
        Mahdollisuuksia 2? muutat koodii? tai asennat kääntäjän 3.3.xx?
        Ohjelma koodi aina virheetöntä kääntäjä ei vaan tajuu.


      • vanhat-toimii
        alkeiset kirjoitti:

        Ei näin vaan kääntäjät (kehittyy)
        Täysin virheetön c kieli joka tehty kääntäjälle (gcc) 3.3.xxx
        ei käänny käänny kääntäjällä 4.0.xxxx
        Mahdollisuuksia 2? muutat koodii? tai asennat kääntäjän 3.3.xx?
        Ohjelma koodi aina virheetöntä kääntäjä ei vaan tajuu.

        Sanomattakin selvää et 3.3.xx kääntäjä saattaa tarvita vanhemman libc:een (eli vanhemman käyttiksen) tässä mukaan astuu (chroot) kukaan kun ei jaksa asennela aina "uutta" (tai "vanhaa" käyttistä uudelleen.


      • alkeiset kirjoitti:

        Ei näin vaan kääntäjät (kehittyy)
        Täysin virheetön c kieli joka tehty kääntäjälle (gcc) 3.3.xxx
        ei käänny käänny kääntäjällä 4.0.xxxx
        Mahdollisuuksia 2? muutat koodii? tai asennat kääntäjän 3.3.xx?
        Ohjelma koodi aina virheetöntä kääntäjä ei vaan tajuu.

        Ei näin vaan kääntäjät (kehittyy)

        "Täysin virheetön c kieli joka tehty kääntäjälle (gcc) 3.3.xxx
        ei käänny käänny kääntäjällä 4.0.xxxx"

        C-kielessä oli vuosien 1978..1989 välillä käytössä ns. K&R tyyli ja 80-luvulla tulevia standardeja käytettiin kirjastoilla. Ne olivat silloin periaatteessa muuttuvia.

        Vuodesta 1989 lähtien oli C-kielelle virallinen standardi C89 ja sitä sai tehtyä virheetöntä C-kieltä joka kääntyi vaivatta ja siihen ei kääntäjä juurikaan vaikuttanut. GCC:ssä saa edelleen käytettyä tätä sellaisenaan ja valittua tämän valitsimella -std=c89

        Ja lisäksi -Wall niin näkee onko siinä virheitä.

        C-kieli sitten päivittynyt, että on sitten C99 ja C11 ja niitä voi käyttää valitsimilla -std=c99 ja -std=c11

        Eli joka vuosikymmenellä on hyvä idea ylläpitää sitä koodia vähän ja siirtää uudemmalle standardille niin vähentyy sitä sotkua. Seuraavan käyttöjärjestelmän asennuksen jälkeen kun on uusi kääntäjä, onkin ajankohtaista kääntää -std=c18

        "Ohjelma koodi aina virheetöntä kääntäjä ei vaan tajuu."

        Koodi tuskin on virheetöntä. Kokeile kääntää käyttöjärjestelmän oletuskääntäjällä valitsimilla -std=c89 -Wall

        Siitä sitten asteittain siirrät -std=c99 -> -std=c11 ja joskus sitten -std=c18

        Itse kääntelin tässä äsken koodia vuodelta 1981 jonka päivitin tällä tavoin C11 standardille. Olihan siinä virheitä läjäpäin itse koodissa ja lisäksi modernisoinni jotka vähensi koodin määrää kivasti.


      • Turbo-Urpo1
        M-Kar kirjoitti:

        Ei näin vaan kääntäjät (kehittyy)

        "Täysin virheetön c kieli joka tehty kääntäjälle (gcc) 3.3.xxx
        ei käänny käänny kääntäjällä 4.0.xxxx"

        C-kielessä oli vuosien 1978..1989 välillä käytössä ns. K&R tyyli ja 80-luvulla tulevia standardeja käytettiin kirjastoilla. Ne olivat silloin periaatteessa muuttuvia.

        Vuodesta 1989 lähtien oli C-kielelle virallinen standardi C89 ja sitä sai tehtyä virheetöntä C-kieltä joka kääntyi vaivatta ja siihen ei kääntäjä juurikaan vaikuttanut. GCC:ssä saa edelleen käytettyä tätä sellaisenaan ja valittua tämän valitsimella -std=c89

        Ja lisäksi -Wall niin näkee onko siinä virheitä.

        C-kieli sitten päivittynyt, että on sitten C99 ja C11 ja niitä voi käyttää valitsimilla -std=c99 ja -std=c11

        Eli joka vuosikymmenellä on hyvä idea ylläpitää sitä koodia vähän ja siirtää uudemmalle standardille niin vähentyy sitä sotkua. Seuraavan käyttöjärjestelmän asennuksen jälkeen kun on uusi kääntäjä, onkin ajankohtaista kääntää -std=c18

        "Ohjelma koodi aina virheetöntä kääntäjä ei vaan tajuu."

        Koodi tuskin on virheetöntä. Kokeile kääntää käyttöjärjestelmän oletuskääntäjällä valitsimilla -std=c89 -Wall

        Siitä sitten asteittain siirrät -std=c99 -> -std=c11 ja joskus sitten -std=c18

        Itse kääntelin tässä äsken koodia vuodelta 1981 jonka päivitin tällä tavoin C11 standardille. Olihan siinä virheitä läjäpäin itse koodissa ja lisäksi modernisoinni jotka vähensi koodin määrää kivasti.

        Pakko sotkea vähän:

        Vuodesta 1989 lähtien oli C-kielelle virallinen standardi C89 ja sitä sai tehtyä virheetöntä C-kieltä joka kääntyi vaivatta ja siihen ei kääntäjä juurikaan vaikuttanut. GCC:ssä saa edelleen käytettyä tätä sellaisenaan ja valittua tämän valitsimella -std=c89

        Koitappa keksiä mikä vikana kun ei kääntäminen onnistu tuolla -std=c89 optiolla, kun yrität sen kääntää alla olevan näin:

        gcc -std=c89 -o hei hei.c



        #include <stdio.h>

        int main (void){
        // Antaa virheen
        printf("Hello World\n");
        }


      • Turbo-Urpo1 kirjoitti:

        Pakko sotkea vähän:

        Vuodesta 1989 lähtien oli C-kielelle virallinen standardi C89 ja sitä sai tehtyä virheetöntä C-kieltä joka kääntyi vaivatta ja siihen ei kääntäjä juurikaan vaikuttanut. GCC:ssä saa edelleen käytettyä tätä sellaisenaan ja valittua tämän valitsimella -std=c89

        Koitappa keksiä mikä vikana kun ei kääntäminen onnistu tuolla -std=c89 optiolla, kun yrität sen kääntää alla olevan näin:

        gcc -std=c89 -o hei hei.c



        #include <stdio.h>

        int main (void){
        // Antaa virheen
        printf("Hello World\n");
        }

        Oisko ihan vaan tuo kommentti kun C89:ssä kommentit tehdään näin: /* kommentti */

        Toinen ilmeinen asia on paluuarvon puuttuminen. return 0; pitäisi löytyä.


      • sssaasaa
        M-Kar kirjoitti:

        Oisko ihan vaan tuo kommentti kun C89:ssä kommentit tehdään näin: /* kommentti */

        Toinen ilmeinen asia on paluuarvon puuttuminen. return 0; pitäisi löytyä.

        Kiitos mää oon aina ennen sun 2:ta viimeistä kommenttii pitänyt gcc kehittäjiä idiootteina.
        Ja huomasin nyt et idiootti oonkin itse
        Eli aina oppii uutta...


      • sssaasaa kirjoitti:

        Kiitos mää oon aina ennen sun 2:ta viimeistä kommenttii pitänyt gcc kehittäjiä idiootteina.
        Ja huomasin nyt et idiootti oonkin itse
        Eli aina oppii uutta...

        Tuohon voisi lisätä, että funtion paluuarvo "return 0;" on niinikään myös pielessä.

        löytyy täältä: #include <stdlib.h>

        exit(EXIT_SUCCESS);

        Tuolla tavalla poistutaan ohjelmista oikein. int main(void) toki on oikea muoto pääohjelmalle.


      • Turbo-Urpo1
        M-Kar kirjoitti:

        Oisko ihan vaan tuo kommentti kun C89:ssä kommentit tehdään näin: /* kommentti */

        Toinen ilmeinen asia on paluuarvon puuttuminen. return 0; pitäisi löytyä.

        Joo, kyllä minä hain juuri tuota kommentin väärää muotoa, koska tuota muotoa voi käyttää vasta optiolla -std=c99.


    • miksivalehteluttenne

      Itseasiassa itsekin tutustuin Ubuntu 18 versioon, tämä puute on aina: sanotaan että on open-source: source ei kuitenkaan ole aina avoin KAIKILLE AJUREILLE.... miksi siis VALEHTELETTE ETTÄ OLISI OPEN-SOURCE -MUKA?

      • 1. Ubuntu ei ole täysin open source vaan mixed source. Siinä on vähäisiä määriä suljettua koodia.
        2. Ubuntu ON avoin kaikille ajureille joten puhut paskaa. Siellä ei ole ajurirajapinnassa mitään suljettuna.


    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Istuva kansanedustaja epäiltynä pahoinpitelystä ja ampuma-aserikoksesta

      Seiskan tietojen mukaan Timo Vornanen on epäiltynä pahoinpitelystä ja ampuma-aserikoksesta eikä kenellekään taatusti tul
      Maailman menoa
      426
      2981
    2. Timo Vornanen kilahti

      Mikähän sille kansanedustajalle polisiisi miehelle on noin pahasti mennyt hermot , että tulevaisuudensa pilasi totaalise
      Kotka
      100
      2306
    3. Tollokin tajuaa että Timo Vornanen

      oli joutunut äärimmäiseen tilanteeseen ampuessaa yhden laukauksen katuun. Ei poliisi tee tuollaista hetken mielijohteest
      Maailman menoa
      351
      2026
    4. Pullonpalautusjärjestelmä muuttuu - paluu menneisyyteen

      EU suuressa viisaudessaan on päättänyt, että pulloja pitää kierrättää. Jos oikein ymmärsin, nykyisen järjestelmänmme ti
      Maailman menoa
      155
      1913
    5. Sininen farmari - Ford Focus- YFB-842 on poliisilta kadoksissa Kauhajärvellä

      https://alibi.fi/uutiset/poliisilta-poikkeuksellinen-vihjepyynto-autossa-oleva-henkilo-on-avuntarpeessa/?shared=29255-2d
      Lapua
      7
      1777
    6. 158
      1212
    7. Onko oikeudenmukaista? Yhdellä taholla yllättävä valta-asema Tähdet, tähdet -voittajan valinnassa!

      Näinpä, onko sinusta tämä oikein? Viime jaksossakin voittaja selvisi vain yhden äänen erolla ja tänä sunnuntaina ensimm
      Tv-sarjat
      23
      1207
    8. No kerros nyt nainen

      Kumpi mielestäsi oli se joka väärinkäsitti kaiken? Nyt voi olla jo rehellinen kun koko tilanne on jo lähes haihtunut.
      Ikävä
      96
      1144
    9. Persukansanedustaja Timo Vornanen ammuskellut Helsingissä

      Poliisi siviiliammatiltaan, luvallinen ase mukana baarissa tällä hemmetin valopääpersulla. Meni eduskunnasta suoraan baa
      Haapavesi
      71
      1062
    10. Nainen, mietit miten minä jaksan

      En voi hyvin. Nykyään elämäni on lähinnä selviytymistä tunnista ja päivästä toiseen. Usein tulee epävarma olo, että mite
      Ikävä
      88
      927
    Aihe