Linuxi '.a' faili loomine ja käitamine

Linuxi A Faili Loomine Ja Kaitamine



Linuxi operatsioonisüsteemis failidega töötamine nõuab erinevate käskude ja tehnikate kaasamist, mis võimaldavad arendajatel faile, koodi, programme, skripte ja muid asju tõhusalt luua ja käivitada. Linuxi keskkonnas on .a laiendiga failid staatiliste teekidena olulise tähtsusega. Need raamatukogud mängivad tarkvaraarenduses olulist rolli, võimaldades arendajatel tõhusalt hallata ja tõhusalt jagada ühiseid funktsioone mitme programmiga.

A-faili loomise ja käitamise mõistmine on Linuxi keskkonnas tõhusa tarkvaraarenduse jaoks ülioluline. See on põhjalik juhend Linuxi '.a' faili installimiseks ja konfigureerimiseks. Avastame, mis on Linuxi '.a' fail, uurime selle eesmärki, struktuuri ning selle loomist ja käivitamist.

Mis on '.a' fail Linuxis?

Linuxi .a-fail on arhiivifail, mis toimib kompileeritud koodi ja andmete konteinerina. Seda tuntakse üldiselt staatilise raamatukoguna, mis sisaldab koode, mis on kompileerimise ajal lingitud kutsuva koodiga, millest saab rakenduse põhiosa. Need Linuxi '.a'-failid annavad rakendusele eelkompileeritud, põhilise panuse, vastandades täielikult Linuxi '.so' dünaamiliste teekide failidele, mille linkimine toimub käitusajal.







Kujutagem ette stsenaariumi, kus arendaja rakendab kolme erinevat programmi. Teades, et nende programmide vahel on jagatud funktsionaalsus, loob programmeerija teegi, mis kapseldab need ühised funktsioonid, mis on esitatud '.a'-failina. Praegusel hetkel on oluline teada, et Linuxi .a-failidest saab korduvkasutatav koodi ja andmete kogu, mida teised arendajad saavad oma projektides kasutada.



Eeltingimused:

Enne Linuxis .a-faili loomise ja käitamise õppimist on oluline teada mõnda põhiasja. Enne funktsiooni täitmist Linuxis on mõned eeltingimused. Need on järgmised:



  • Ubuntu 20.04 või mis tahes uusim versioon
  • Juurdepääs käsureale või terminali aknale
  • Kasutajakonto, täpsemalt sudo privileegid erinevate failide ja kataloogide jaoks

Kuidas luua ja käivitada Linuxi faili '.a'?

Linuxi faili “.a” loomine ja käitamine hõlmab mitmeid samme: loomine, kompileerimine ja käivitamine. Nende toimingute tegemiseks saab kasutada erinevaid viise ja me uurime neid kõiki eraldi. Alustame.





Järgmise näite käitamiseks ja täitmiseks vajate GCC kompilaatorit. Kompilaatorit kasutatakse kõigi Linuxi faili '.a' loomiseks ja käitamiseks käskude käivitamiseks:



Järgmised sammud on selgitatud erinevate käskude ja tehnikate kaudu.

1. samm: kompileerige C-lähtefail

Alustage tööd C lähtefaili loomisega, kasutades GCC kompilaatorit, et kompileerida C lähtefailid (.c) objektifailideks (.o) järgmise käsuga:

$ gcc - Sein -c * .c

Lipp '-Wall' lubab kõik hoiatused ja lipp '-c' käsib GCC-l praegu ainult kompileerida, mitte linkida.

2. samm: looge raamatukogu arhiiv

Järgmine samm on raamatukogu faili loomine. Käsk “ar” loob objektifailidest staatilise teegi arhiivi (.a). Seetõttu kasutame järgmist käsku:

$ Koos -cvq libfile.a * .O

See käsk loob staatilise arhiivifaili nimega 'libfile.a', kombineerides erinevaid objektifaile, millel on laiend '.o', kasutades Linuxi operatsioonisüsteemides käsku 'ar' (archive). Sellel käsul on kolm asja, mida tähele panna: 'c', 'v' ja 'q'. Jagame komponendid lahti ja mõistame iga lipu ja argumendi eesmärki selle käsu kontekstis:

ar: see täidab Linuxi süsteemides arhiivikäsku. Käsu 'ar' põhifunktsioon on luua, muuta ja arhiivist välja võtta.

-c: see lipp juhendab looma uue arhiivi, kui seda pole veel loodud või seda veel ei ole. Kui antud nimega arhiivifail on olemas, tagab lipp '-c' selle uuesti loomise, asendades mis tahes varasema sisu.

-v: üksikasjalik lipp kuvab üksikasjalikku teavet arhiveerimisprotsessi kohta. See annab tagasisidet selle kohta, milliseid faile arhiivi lisatakse.

-q: 'q' tähistab 'kiiresti lisamist'. See palub lipul 'ar' määratud failid viivitamatult arhiivi lisada, ilma et kontrollitaks dubleerivaid sümboleid või aeganõudvaid toiminguid.

libfile.a: loodava või muudetava käsu jaoks on vaja faili nime. Siin anname failinimeks 'libfile' laiendiga '.a', mis näitab, et tegemist on staatilise teegi arhiivifailiga.

*.o: '*' käsu lõpus tähistab iga faili valitud kataloogis laiendiga '.o', mis viitab objektifailidele. Objektifailid on lähtekoodi koostamise tulemused ja sisaldavad masinkoodi, mis ei ole veel lingitud ühegi lõpliku käivitatava failiga.

3. samm: teegi sisu vaatamine

Nüüd, kui oleme raamatukogu arhiivi loonud, näeme seda käsu 'ar –t' abil. Käsk 'ar –t' loetleb kogu teegis oleva sisu.

$ Koos -t libfile.a

Käsk “ar -t libfile.a” loetleb kõik objektifailid, mis sisalduvad staatilise teegi arhiivifailis nimega “libfile.a”, kasutades Linuxi operatsioonisüsteemis käsku “ar”. Analüüsime iga lippu ja nende funktsioone:

ar: Nagu varem mainitud, on see Linuxi süsteemides arhiivimiskäsk.

-t: lippu '-t' kasutatakse arhiivi sisukorra kuvamiseks, kuvades faili 'libfile.a' salvestatud objektifailide nimed.

libfile.a: andmete lugemiseks peame teadma arhiivifaili nime.

4. samm: teegi kasutamine teises programmis

Vaatame nüüd, kuidas kasutada äsja arendatud Linuxi '.a' faili teises programmis. Kuna lõime teegi, saab seda nüüd kasutada kõikjal ja igas programmis, lisades teegi kompileerimiskäsku. Saame seda saavutada järgmise käsu abil. See sisaldab kõiki raamatukogu vajalikke päiseid ja linke.

$ gcc -O MyProgramMain.c -L tee / juurde / lib on -fail

Selles käsus määrab '-L' teegi tee, '-lfile' lingib libfile 'library.a' vastu, eemaldades eesliite 'lib' ja järelliite '.a'.

5. samm: käivitage Linuxi fail '.a'.

Lõpuks saame käivitada faili '.a'. Tulemus kuvatakse teile kohe pärast järgmise skripti käivitamist oma terminalis:

$ . / MyProgramMain

See käsk käivitab faili, kasutades nii lähtefailides kui ka lingitud staatilises teegis pakutavaid funktsioone.

Järeldus

A-faili loomine ja käitamine Linuxis nõuab erinevate käskude kompileerimist, mis teostavad faili loomise, kompileerimise ja linkimise. Nende sammude ja iga käsu tööfunktsioonide mõistmine võimaldab arendajatel korraldada oma koodi, kasutada väliseid teeke ja arendada skaleeritavaid programme. Olenemata sellest, kas peate kasutama põhikäske, nagu nano ja GCC, või töötate staatiliste teekide abil täiustatud tehnikatega, aitab nende oskuste omandamine praktilises Linuxi-põhises arenduses.