Miten C-ohjelma käännetään Linuxissa?

Jaskamiesminä

5

305

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • näin

      gcc koodi.c -o ohjelma

      missä "koodi.c" on se käännettävä koodi ja "ohjelma" sen suoritettavan käännetyn ohjelman nimi.

    • kirjoita_ensin

      Linux ei ole mikään C-kielen kääntäjä. Jotta C-kieliset ohjelmat voivat kääntyä konekielelle on oltava kääntäjäohjelma. Linuxdistroihin voidaan asentaa C-kielen kääntäjäohjelma.
      Näin C-kielen kääntäjiä on useita. Se "gcc" on vain yksi monista.

      Ohjelmointikielet ovat käännettäviä tai tulkattavia. Käyttöjärjestelmässä on oltava jompikumpi, kielen kääntäjä tai kielen tulkki. (riippuu kielestä) Ohjelmointikielissä lähdekoodi tuotetaan "tekstieditorissa" ja tämän jälkeen tuotettu ohjelma osoitetaan käännettäväksi tai tulkattavaksi.
      Tekstieditori voi olla yksinkertainen tekstinkäsittelyohjelma taikka laaja IDE (integroitu sovellus)

      Tekstieditori voi olla myös komentotulkki (shell) eli tässä (pääte, terminaali)kirjoitetut komennot suoritetaan suoraan komentotulkin alaisuudessa. Unixeissa ja linuxdistroissa voidaan käyttää komentotulkkina C-Shelliä joka noudattaa C-kielen syntaksia. (csh, tcsh)
      Komentotulkkeja on useita, useimmin vakiona tulee bash.
      On mahdollista käyttää myös lisp ohjelmointikielistä komentoltulkkia (lush).

      Tässä ei ole mahdollista laajaan opastukseen kuinka käytetään kaikkia C-kielen kääntäjiä. Nämä selviää kääntäjän manuaaleista.(ohjeista). Lyhyt pääohje on se, että kirjoita ensin se lähdekoodi ja käännä se sitten valitsemalla kääntäjälläsi.

      • gcc_monopoli_linuxissa

        "Se "gcc" on vain yksi monista"

        teoriassa ehkä näin.

        Toki muitakin C -kääntäjiä (jopa linuxille) on olemassa, mutta niitä muita ei yleensä ole yhdenkään linuxjakelun omissa pakettivarastoissa, vaan ne pitää erikseen etsiä esim. ohjelmantekijän kotisivuilta. Yksi tällainen on TCC (Tiny C Compiler).

        em. syistä se C -kääntäjä, mikä löytyy n. 99,9% linux -koneista, on gcc.

        siis muiden C -kääntäjien yhteinen "markkinaosuus" on 0,1%, jos lasketaan "ei C -kääntäjää lainkaan" yhdeksi kilpailevaksi C -kääntäjäksi, tämä siis koskee niitä tietokoneita, joissa ajetaan Linux -käyttöjärjestelmää.

        HUOM: Androidia EI lasketa linuxiksi, vaikka se ainakin osittain samaan koodipohjaan perustuukin.

        Android on muuten lisenssipolitiikan ja -ehtojen kannalta erittäin mielenkiintoinen tekele!

        Kun saisikin jonkun lisenssiasioihin erikoistuneen pätevän lakimiehen selvittämään Androidin laillisuus!

        Eli, ilmeisesti ainakin 99% Androidista on GPL -lisenssin alaista, ja näinollen kenellä tahansa on noita GPL -lisensoituja osia oikeus levittää, maksua vastaan tai ilmaiseksi, kukin oman valintansa mukaan.

        Entä ne osat Androidista, jotka EIVÄT ole GPL -lisenssin alaisia?

        Niiden tekijänoikeus ilmeisesti kuuluu Googlelle, niinkö?

        Tarkoittaako tämä siis sitä, että jos hankkii jostain kaikki lähdekoodit, poistaa niiden joukosta sellaiset osat, joiden lisenssiehdot eivät salli vapaata edelleen jakelua, niin loppuosan Androidista saa vapaasti levittää, muokattuna tai sellaisenaan?

        Mutta tekeekö noilla vapailla osilla mitään?

        Vai onko Android suunniteltu ovelasti niin, että pelkillä GPL (tai esim LGPL) -osilla ei tee mitään, vaan toimivan kokonaisuuden saamiseksi tarvittaisiin muitakin osia, ja niiden lisenssiehdot eivät salli vapaata kopiointia/edelleenjakelua, ja niiden tekijänoikeuksia valvoo Google?

        gcc siis on käytännössä linuxin ainoa (merkittävä) C-kääntäjä.

        Toki jos kirjoittaa ohjelmansa muulla kielellä kuin C, niin noita muita kääntäjiä toki on, kuten esim. Free Pascal.


      • hmhmhmhm
        gcc_monopoli_linuxissa kirjoitti:

        "Se "gcc" on vain yksi monista"

        teoriassa ehkä näin.

        Toki muitakin C -kääntäjiä (jopa linuxille) on olemassa, mutta niitä muita ei yleensä ole yhdenkään linuxjakelun omissa pakettivarastoissa, vaan ne pitää erikseen etsiä esim. ohjelmantekijän kotisivuilta. Yksi tällainen on TCC (Tiny C Compiler).

        em. syistä se C -kääntäjä, mikä löytyy n. 99,9% linux -koneista, on gcc.

        siis muiden C -kääntäjien yhteinen "markkinaosuus" on 0,1%, jos lasketaan "ei C -kääntäjää lainkaan" yhdeksi kilpailevaksi C -kääntäjäksi, tämä siis koskee niitä tietokoneita, joissa ajetaan Linux -käyttöjärjestelmää.

        HUOM: Androidia EI lasketa linuxiksi, vaikka se ainakin osittain samaan koodipohjaan perustuukin.

        Android on muuten lisenssipolitiikan ja -ehtojen kannalta erittäin mielenkiintoinen tekele!

        Kun saisikin jonkun lisenssiasioihin erikoistuneen pätevän lakimiehen selvittämään Androidin laillisuus!

        Eli, ilmeisesti ainakin 99% Androidista on GPL -lisenssin alaista, ja näinollen kenellä tahansa on noita GPL -lisensoituja osia oikeus levittää, maksua vastaan tai ilmaiseksi, kukin oman valintansa mukaan.

        Entä ne osat Androidista, jotka EIVÄT ole GPL -lisenssin alaisia?

        Niiden tekijänoikeus ilmeisesti kuuluu Googlelle, niinkö?

        Tarkoittaako tämä siis sitä, että jos hankkii jostain kaikki lähdekoodit, poistaa niiden joukosta sellaiset osat, joiden lisenssiehdot eivät salli vapaata edelleen jakelua, niin loppuosan Androidista saa vapaasti levittää, muokattuna tai sellaisenaan?

        Mutta tekeekö noilla vapailla osilla mitään?

        Vai onko Android suunniteltu ovelasti niin, että pelkillä GPL (tai esim LGPL) -osilla ei tee mitään, vaan toimivan kokonaisuuden saamiseksi tarvittaisiin muitakin osia, ja niiden lisenssiehdot eivät salli vapaata kopiointia/edelleenjakelua, ja niiden tekijänoikeuksia valvoo Google?

        gcc siis on käytännössä linuxin ainoa (merkittävä) C-kääntäjä.

        Toki jos kirjoittaa ohjelmansa muulla kielellä kuin C, niin noita muita kääntäjiä toki on, kuten esim. Free Pascal.

        Android käyttää Linux ydintä, kuten muutkin Linux ytimeen perustuvat käyttöjärjestelmät, ei siinä liene mitään eroa.


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

    Luetuimmat keskustelut

    1. Voiko normaali ihminen ryhtyä vasemmistolaiseksi?

      Tätä jäin pohdiskelemaan.
      Maailman menoa
      202
      4248
    2. SDP haluaa 40 000 nettomaahanmuuttajaa

      SDP:n Suunnanmuutos-vaihtoehtobudjetissa, käy ilmi, että demarit itse asiassa vaativat räjähdysmäistä ”työperäisen” maah
      Maailman menoa
      146
      3798
    3. Orpo: Velkajarrua vastustavaa puoluetta vaikea ajatella hallitukseen

      No Minja Koskelan kommunistipuolue jäi ulos tuosta. Kaikki eduskuntapuolueet vasemmistoliittoa lukuun ottamatta sopivat
      Maailman menoa
      136
      3245
    4. Hienoa! Eduskunta luopui käteisen käytöstä

      Nyt tuo sama muutos pitää saada myös muuhun yhteiskuntaan. Käteistähän ei tarvitse tänä päivänä enää kuin rikolliset.
      Maailman menoa
      47
      1629
    5. Ikävä sinua mies

      Vuosia kuluu, mutta tunteet ei ole hävinnyt. Tasoittuneet toki, kun ei olla nähty. Järki palannut päähän kuitenkin. Se i
      Ikävä
      19
      1508
    6. Mikä tämä henkilö mahtaa touhuta Parkanossa

      Kamalaa https://www.ylasatakunta.fi/teksti/pirkanmaan-karajaoikeus-vangitsi-koiran-tappamisesta-epaillyn-6.68.127794.b58
      Parkano
      34
      1450
    7. Sulla on avaimet ja keinot

      Jos haluat jatkaa tutustumista. Itse olen niin jäässä etten pysty tekemään enää mitään. Pidempi keppi johon on helpompi
      Ikävä
      25
      1385
    8. Orpo loukkaantui fasismiin viittaavasta sanavalinnasta

      Mutta miksi loukkaantui? Orpohan on tehnyt yhteistyötä fasistien kanssa jo vuonna 2019, siis jo neljä vuotta ennen loukk
      Maailman menoa
      27
      1351
    9. Kiinnostaa - ei kiinnosta - kiinnostaapas

      Selittäkää hämmentyneelle miksi miehiä ei ikinä kiinnosta silloin, kun sitä olisi itsekin kiinnostunut? Sitten kun siirt
      Sinkut
      116
      1160
    10. Martina haluaa Marbellaan

      Martinan tekisi mieli ottaa lennot Marbellaan, jossa näkisisi kauniita ja hyväntuulisia ihmisiä. No sitten pitää matkust
      Kotimaiset julkkisjuorut
      215
      1063
    Aihe