C++ koodaus ubuntussa?

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.
351457
Äänestä

Muut lukivat myös

Vastaukset 35

Vanhimmat

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.

Äänestä

C työkalua.

Äänestä

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.

Äänestä

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.

Äänestä
  • 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ä..

    Äänestä

..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.

Äänestä

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

Äänestä

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

Äänestä

Code::blocks ide.

Äänestä

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

Äänestä
  • 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!

    Äänestä

  • 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ä.

    Äänestä

  • 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.

    Äänestä

  • 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ää..

    Äänestä

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 🤓

Äänestä

  • 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.

    Äänestä

  • 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ä.

    Äänestä

  • 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.

    Äänestä

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.

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

    Äänestä

  • 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.

    Äänestä

  • 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.

    Äänestä

  • "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.

    Äänestä

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

Äänestä
  • 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.

    Äänestä

  • 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.

    Äänestä

  • 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.

    Äänestä

  • 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");
    }

    Äänestä

  • 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ä.

    Äänestä

  • 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...

    Äänestä

  • 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.

    Äänestä

  • 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.

    Äänestä

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?

Äänestä
  • 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.

    Äänestä

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

Kommentoi aloitusta


evo n00b kirjoitti:

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.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu