Pochopenie toho, ako vytvoriť a spustiť súbor „.a“, je kľúčové pre efektívny vývoj softvéru v prostredí Linuxu. Toto je komplexný návod na inštaláciu a konfiguráciu súboru Linux „.a“. Poďme zistiť, čo je súbor Linux „.a“, preskúmať jeho účel, štruktúru a ako ho možno vytvoriť a spustiť.
Čo je súbor „.a“ v systéme Linux?
Súbor Linux „.a“ je archívny súbor, ktorý slúži ako kontajner pre skompilovaný kód a údaje. Je všeobecne známa ako statická knižnica, ktorá obsahuje kódy, ktoré sú prepojené s volajúcim kódom v čase kompilácie, ktorá sa stáva základnou súčasťou aplikácie. Tieto linuxové súbory „.a“ poskytujú predkompilovaný základný príspevok k aplikácii a úplne kontrastujú so súbormi dynamických knižníc Linuxu „.so“, kde sa prepojenie vyskytuje za behu.
Predstavme si scenár, v ktorom vývojár implementuje tri rôzne programy. S vedomím, že medzi týmito programami existuje zdieľaná funkcia, programátor vytvorí knižnicu, ktorá zapuzdruje tieto spoločné funkcie, ktoré sú prezentované ako súbor „.a“. V tomto bode je dôležité vedieť, že súbory „.a“ pre Linux sa stávajú opakovane použiteľnou zbierkou kódu a údajov, ktoré môžu iní vývojári použiť vo svojich projektoch.
Predpoklady:
Predtým, ako sa naučíte, ako vytvoriť a spustiť súbor „.a“ v systéme Linux, je dôležité vedieť niekoľko základných vecí. Pred vykonaním funkcie v systéme Linux je potrebné zabezpečiť niekoľko predpokladov. Sú nasledovné:
- Ubuntu 20.04 alebo akákoľvek najnovšia verzia
- Prístup k príkazovému riadku alebo oknu terminálu
- Používateľský účet, konkrétne privilégiá sudo, pre rôzne súbory a adresáre
Ako vytvoríte a spustíte súbor Linux „.a“?
Vytvorenie a spustenie linuxového súboru „.a“ zahŕňa sériu krokov: vytvorenie, kompiláciu a spustenie. Na vykonanie týchto akcií možno použiť rôzne spôsoby a každý z nich preskúmame individuálne. Začnime.
Na spustenie a spustenie nasledujúceho príkladu potrebujete kompilátor GCC. Kompilátor sa používa na spustenie všetkých príkazov na vytvorenie a spustenie súboru Linux „.a“:
Nasledujú kroky, ktoré sú vysvetlené prostredníctvom rôznych príkazov a techník.
Krok 1: Kompilujte zdrojový súbor C
Začnite prácu vytvorením zdrojového súboru C pomocou kompilátora GCC na kompiláciu zdrojových súborov C (.c) do objektových súborov (.o) pomocou nasledujúceho príkazu:
$ gcc -Stena -c * .cPríznak „-Wall“ povoľuje všetky varovania a príznak „-c“ hovorí GCC iba o kompilácii, nie o odkaze v tomto bode.
Krok 2: Vytvorte archív knižnice
Ďalším krokom je vytvorenie súboru knižnice. Príkaz „ar“ vytvorí archív statickej knižnice (.a) zo súborov objektov. Preto používame nasledujúci príkaz:
$ s -cvq libfile.a * .OTento príkaz vytvorí statický archívny súbor s názvom „libfile.a“ kombináciou rôznych objektových súborov, ktoré majú príponu „.o“ pomocou príkazu „ar“ (archive) v operačných systémoch Linux. Tento príkaz si všíma tri veci: „c“, „v“ a „q“. Poďme si rozobrať komponenty a pochopiť účel každého príznaku a argumentu v kontexte tohto príkazu:
ar: Vykonáva príkaz archívu v systémoch Linux. Základnou funkciou príkazu „ar“ je vytvárať, upravovať a extrahovať z archívu.
-c: Tento príznak dáva pokyn na vytvorenie nového archívu, ak ešte nebol vytvorený alebo ešte neexistuje. Ak archívny súbor s daným názvom existuje, príznak „-c“ zabezpečí jeho opätovné vytvorenie a nahradí akýkoľvek predchádzajúci obsah.
-v: Príznak podrobný zobrazuje podrobné informácie o procese archivácie. Poskytuje spätnú väzbu o tom, ktoré súbory sa pridávajú do archívu.
-q: „q“ znamená „rýchlo pripojiť“. Žiada príznak „ar“, aby okamžite pridal špecifikované súbory do archívu bez kontroly duplicitných symbolov alebo časovo náročných operácií.
libfile.a: Názov súboru sa vyžaduje pre príkaz, ktorý bude vytvorený alebo upravený. Tu uvádzame názov súboru ako „libfile“ s príponou „.a“, čo znamená, že ide o archívny súbor statickej knižnice.
*.o: „*“ na konci príkazu predstavuje každý súbor vo vybranom adresári s príponou „.o“, ktorá odkazuje na objektové súbory. Objektové súbory sú výsledkom kompilácie zdrojového kódu a obsahujú strojový kód, ktorý ešte nie je prepojený so žiadnym konečným spustiteľným súborom.
Krok 3: Zobrazenie obsahu knižnice
Teraz, keď sme vytvorili archív knižnice, môžeme ho vidieť pomocou príkazu „ar –t“. Príkaz „ar –t“ vypíše všetok obsah, ktorý sa nachádza v knižnici.
$ s -t libfile.aPríkaz „ar -t libfile.a“ uvádza zoznam všetkých súborov objektov, ktoré sú obsiahnuté v súbore statickej knižnice s názvom „libfile.a“ pomocou príkazu „ar“ v operačnom systéme Linux. Poďme analyzovať každý príznak a jeho funkčnosť:
ar: Ako už bolo spomenuté, toto je príkaz archívu v systémoch Linux.
-t: Príznak „-t“ sa používa na zobrazenie obsahu archívu, pričom zobrazuje názvy súborov objektov, ktoré sú uložené v súbore „libfile.a“.
libfile.a: Na čítanie údajov potrebujeme poznať názov archívneho súboru.
Krok 4: Použitie knižnice v inom programe
Pozrime sa teraz, ako použiť novo vyvinutý súbor Linux „.a“ v inom programe. Keďže sme vytvorili knižnicu, teraz ju možno použiť kdekoľvek a v akomkoľvek programe jednoduchým pridaním knižnice do príkazu na kompiláciu. Môžeme to dosiahnuť pomocou nasledujúceho príkazu. Obsahuje všetky potrebné hlavičky a odkazy knižnice.
$ gcc -O MyProgramMain.c -L cesta / do / lib je -súborV tomto príkaze „-L“ určuje cestu ku knižnici, „-file“ odkazuje na súbor libfile „library.a“, pričom odstraňuje predponu „lib“ a príponu „.a“.
Krok 5: Spustite súbor Linux „.a“.
Nakoniec môžeme spustiť súbor „.a“. Výsledok sa vám zobrazí okamžite po spustení nasledujúceho skriptu vo vašom termináli:
$ . / MyProgramMainTento príkaz spustí súbor s využitím funkcií, ktoré sú poskytnuté v zdrojových súboroch aj v prepojenej statickej knižnici.
Záver
Vytvorenie a spustenie súboru „.a“ v systéme Linux vyžaduje kompiláciu rôznych príkazov, ktoré vykonávajú vytváranie, kompiláciu a prepojenie. Pochopenie týchto krokov a pracovných funkcií každého príkazu umožňuje vývojárom organizovať svoj kód, používať externé knižnice a vyvíjať škálovateľné programy. Či už potrebujete používať základné príkazy ako nano a GCC, alebo sa chystáte pracovať s pokročilejšími technikami so statickými knižnicami, zvládnutie týchto zručností pomáha pri praktickom vývoji založenom na Linuxe.