V Debian/Ubuntu namestite orodja za prevajalnik C, C ++ in razvoj (bistvena za gradnjo)


Večina sistemskih skrbnikov in inženirjev Linux mora poznati nekaj osnovnih programov, ki jim bodo pomagali pri vsakodnevnih opravilih. Če želijo iti še korak dlje v razvojno področje (bodisi kot programerji jedra ali programov), potem je C ali C ++ najboljše mesto za začetek.

Preberite tudi: Namestite C, C ++ in razvojna orodja v RHEL/CentOS/Fedora

V tem članku bomo razložili, kako namestiti prevajalnike za C in C ++ ter z njim povezane pakete razvojnih orodij (build-bistvenega pomena), kot so make, libc-dev, dpkg-dev itd. V Debianu in derivati, kot sta Ubuntu in Linux Mint.

Programska oprema, ki je bistvena za gradnjo, vsebuje informativni seznam programske opreme, ki je obravnavana kot pomembna za izdelavo paketov Debian, vključno s prevajalnikom gcc, make in drugimi potrebnimi orodji.

Kaj je prevajalnik?

Preprosto povedano, prevajalnik je program, ki obdeluje navodila, napisana v programskem jeziku, in ustvari binarno datoteko, ki jo CPU stroja lahko razume in izvrši.

V distribucijah, ki temeljijo na Debianu, sta najbolj znana prevajalnika C in C ++ gcc oziroma g ++. Oba programa je razvila in jih še vedno vzdržuje Free Software Foundation prek projekta GNU.

Namestitev prevajalnika in razvojnih orodij C, C ++ (bistveno za gradnjo)

Če vaš sistem privzeto nima nameščenega paketa, bistvenega za gradnjo, lahko namestite najnovejšo razpoložljivo različico iz privzetih skladišč distribucije, kot sledi:

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

Zdaj smo pripravljeni začeti tipkati kodo C ali C ++ ... ali skoraj že. Kmalu vam bomo pokazali še eno orodje za povečanje nabora razvojnih orodij.

Pospeševanje kompilacij C in C ++

Ko veste, da boste morali sestaviti program, narediti spremembe in nato znova prevesti, je super imeti orodje, kot je ccache, ki je, kot boste verjetno uganili na podlagi njegovega imena, predpomnilnik prevajalnika.

Ponovno prevajanje pospeši s predpomnjenjem prejšnjih kompilacij in zaznavanjem ponovne izvedbe iste kompilacije. Poleg C in C ++ podpira tudi Objective-C in Objective-C ++. Edine omejitve so:

  1. Podpira le predpomnjenje prevajanja ene datoteke C/C ++/Objective-C/Objective-C ++. Za druge vrste kompilacij (kompilacija več datotek, povezovanje, če omenimo nekaj primerov) bo postopek na koncu zagnal pravi prevajalnik.
  2. Nekatere zastavice prevajalnika morda niso podprte. Če je takšna zastavica zaznana, se bo caca tiho vrnil k zagonu pravega prevajalnika.

Namestimo to orodje:

# aptitude install ccache

V naslednjem poglavju bomo videli nekaj primerov prevajanja kod C in C ++ z in brez predpomnilnika.

Testiranje C in C ++ z vzorčnim programom

Uporabimo klasični primer zelo osnovnega programa C, ki doda dve številki. Odprite svoj najljubši urejevalnik besedil in vnesite naslednjo kodo, nato pa shranite kot 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;
}

Za prevajanje zgornje kode v izvedljivo imenovano vsoto v trenutnem delovnem imeniku uporabite stikalo -o z gcc:

# gcc sum.c -o sum

Če želite izkoristiti ccache, zgoraj dodajte zgornji ukaz ccache, kot sledi:

# ccache gcc sum.c -o sum

Nato zaženite binarno datoteko:

# ./sum

Čeprav nam ta osnovni primer ne omogoča, da bi videli vso moč predpomnilnika, boste pri večjih programih hitro ugotovili, kakšno izvrstno orodje je. Enako velja tudi za programe C ++.

Povzetek

V tem priročniku smo pokazali, kako namestiti in uporabljati prevajalnike GNU za C in C ++ v Debianu in izpeljanih finančnih instrumentih. Poleg tega smo razložili, kako uporabiti predpomnilnik prevajalnika za pospešitev ponovnega prevajanja iste kode. Čeprav se lahko za nadaljnje možnosti in primere obrnete na spletne strani z navodili za gcc in g ++, ne oklevajte in nam pošljite opombo na spodnjem obrazcu. Če imate kakršna koli vprašanja ali komentarje.