Asenna C-, C++-kääntäjä ja kehitystyökalut (build-essential) Debianiin/Ubuntuun


Useimpien Linux-järjestelmänvalvojien ja -insinöörien on tunnettava perusohjelmointia auttaakseen heitä päivittäisissä tehtävissä. Jos he haluavat mennä askeleen pidemmälle myös kehitysalueella (joko ydin- tai sovellusohjelmoijana), C tai C++ on paras paikka aloittaa.

Lue myös: Asenna C-, C++- ja kehitystyökalut RHEL-/CentOS-/Fedora-sovellukseen

Tässä artikkelissa selitämme, kuinka C- ja C++-kääntäjät ja niiden kehitystyökalut (build-essential) asennetaan ) liittyvät paketit, kuten make, libc-dev, dpkg-dev jne. Debianissa ja johdannaiset, kuten Ubuntu ja Linux Mint.

build-essential-ohjelmisto sisältää informatiivisen luettelon ohjelmistoista, joita pidetään tärkeinä Debian-pakettien rakentamisessa, mukaan lukien gcc-kääntäjä, make-työkalu ja muut tarvittavat työkalut.

Mikä on kääntäjä?

Yksinkertaisesti sanottuna kääntäjä on ohjelmisto, joka käsittelee ohjelmointikielellä kirjoitettuja ohjeita ja luo binääritiedoston, jonka koneen CPU voi ymmärtää ja suorittaa.

Debian-pohjaisissa jakeluissa tunnetuimmat C- ja C++-kääntäjät ovat gcc ja g++, vastaavasti. Molempia ohjelmia kehitti ja ylläpitää edelleen Free Software Foundation GNU-projektin kautta.

C-, C++-kääntäjä- ja kehitystyökalujen asentaminen (tärkeä)

Jos järjestelmässäsi ei ole oletuksena asennettuna build-essential-pakettia, voit asentaa uusimman saatavilla olevan version oletusjakeluvarastoista seuraavasti:

apt-get update && apt-get install build-essential     
OR
sudo apt-get update && sudo apt-get install build-essential

Nyt olemme valmiita kirjoittamaan C- tai C++-koodia… tai melkein. Näytämme sinulle vielä yhden työkalun, jolla voit tehostaa kehitystyökalujasi.

C- ja C++-kokoelman nopeuttaminen

Kun tiedät, että sinun täytyy kääntää ohjelma, tehdä muutoksia ja kääntää sitten uudelleen, on hienoa, että sinulla on työkalu, kuten ccache, joka, kuten luultavasti nimensä perusteella arvaat, on kääntäjän välimuisti.

Se nopeuttaa uudelleenkääntämistä tallentamalla aiemmat käännökset välimuistiin ja havaitsemalla, milloin sama käännös tehdään uudelleen. C:n ja C++:n lisäksi se tukee myös Objective-C- ja Objective-C++-koodeja. Ainoat rajoitukset ovat:

  1. Tukee vain yhden C/C++/Objective-C/Objective-C++-tiedoston käännöksen välimuistiin tallentamista. Muuntyyppisissä käännöksissä (monen tiedoston käännös, linkittäminen muutaman esimerkin mainitakseni) prosessi päätyy todellisen kääntäjän suorittamiseen.
  2. Joitakin kääntäjän lippuja ei ehkä tueta. Jos tällainen lippu havaitaan, ccache palaa hiljaa käyttämään oikeaa kääntäjää.

Asennataan tämä työkalu:

aptitude install ccache

Seuraavassa osiossa näemme joitain esimerkkejä C- ja C++-koodien kääntämisestä ccache-muistin kanssa ja ilman.

C:n ja C++:n testaus malliohjelmalla

Käytetään klassista esimerkkiä hyvin yksinkertaisesta C-ohjelmasta, joka lisää kaksi numeroa. Avaa suosikkitekstieditori ja kirjoita seuraava koodi ja tallenna se sitten nimellä sum.c:

#include<stdio.h>
int main()
{
   int a, b, c;
   printf("Enter two numbers to add, separated by a space: ");
   scanf("%d%d",&a,&b);
   c = a + b;
   printf("The sum of equals %d\n",c);
   return 0;
}

Kääntääksesi yllä olevan koodin suoritettavaksi, jonka nimi on summa nykyisessä työhakemistossa, käytä -o-kytkintä gcc:n kanssa:

gcc sum.c -o sum

Jos haluat hyödyntää ccachea, lisää yllä oleva komento ccachella seuraavasti:

ccache gcc sum.c -o sum

Suorita sitten binääri:

./sum

Vaikka tämä perusesimerkki ei anna meille mahdollisuuden nähdä ccachen koko tehoa, suurempien ohjelmien kohdalla huomaat nopeasti, kuinka loistava työkalu se on. Sama pätee myös C++-ohjelmiin.

Yhteenveto

Tässä oppaassa olemme osoittaneet, kuinka GNU-kääntäjät asennetaan ja käytetään C- ja C++-kielille Debianissa ja johdannaisissa. Lisäksi selitimme kuinka kääntäjän välimuistia käytetään nopeuttamaan saman koodin uudelleenkääntämistä. Vaikka voit etsiä lisävaihtoehtoja ja esimerkkejä gcc:n ja g++:n online-man-sivuilta, älä epäröi laittaa meille huomautusta alla olevalla lomakkeella. Jos sinulla on kysyttävää tai kommentteja.