Paggawa at Pagpapatakbo ng Linux '.a' File

Paggawa At Pagpapatakbo Ng Linux A File



Ang pagtatrabaho sa mga file sa isang operating system ng Linux ay nangangailangan ng paglahok ng iba't ibang mga utos at diskarte na nagbibigay-daan sa mga developer na gumawa at magsagawa ng mga file, code, program, script, at iba pang mga bagay nang mahusay. Sa kapaligiran ng Linux, ang mga file na may extension na '.a' ay may malaking kahalagahan bilang mga static na library. Ang mga aklatan na ito ay gumaganap ng isang mahalagang papel sa pagbuo ng software, na nagpapahintulot sa mga developer na mahusay na pamahalaan at epektibong ibahagi ang mga karaniwang pag-andar sa maraming mga programa.

Ang pag-unawa sa kung paano gumawa at magpatakbo ng '.a' na file ay mahalaga para sa epektibong software development sa Linux environment. Ito ay isang komprehensibong how-to para sa pag-install at pag-configure ng Linux '.a' file. Tuklasin natin kung ano ang Linux '.a' file, tuklasin ang layunin, istraktura, at kung paano ito malikha at maisakatuparan.

Ano ang '.a' na File sa Linux?

Ang Linux '.a' file ay isang archive file na nagsisilbing container para sa isang pinagsama-samang code at data. Ito ay karaniwang kilala bilang isang static na library na naglalaman ng mga code na naka-link sa calling code sa oras ng compilation na nagiging pangunahing bahagi ng application. Ang mga Linux '.a' file na ito ay nagbibigay ng paunang pinagsama-samang, foundational na kontribusyon sa application, na ganap na naiiba sa Linux '.so' na mga dynamic na libraries file kung saan ang pagli-link ay nangyayari sa runtime.







Isipin natin ang isang senaryo kung saan ang isang developer ay nagpapatupad ng tatlong magkakaibang programa. Dahil alam na umiiral ang ibinahaging functionality sa mga program na ito, ang programmer ay gumagawa ng isang library na sumasaklaw sa mga karaniwang feature na ito na ipinakita bilang isang '.a' na file. Ang mahalagang balitang dapat malaman sa puntong ito ay ang mga file ng Linux na '.a' ay nagiging isang magagamit muli na koleksyon ng code at data na magagamit ng ibang mga developer sa kanilang mga proyekto.



Mga kinakailangan:

Bago magpatuloy upang matutunan kung paano gumawa at magpatakbo ng '.a' file sa Linux, mahalagang malaman ang ilang pangunahing bagay. Mayroong ilang mga kinakailangan na dapat tiyakin bago magsagawa ng isang function sa Linux. Ang mga ito ay ang mga sumusunod:



  • Ubuntu 20.04 o anumang pinakabagong bersyon
  • Access sa isang command line o terminal window
  • Isang user account, partikular na mga pribilehiyo ng sudo, para sa iba't ibang mga file at direktoryo

Paano Ka Gumagawa at Nagpapatakbo ng Linux '.a' File?

Ang paggawa at pagpapatakbo ng Linux na '.a' na file ay nagsasangkot ng isang serye ng mga hakbang: paggawa, pagsasama-sama, at pagpapatupad. Maaaring gumamit ng iba't ibang paraan upang maisagawa ang mga pagkilos na ito, at isa-isa naming tuklasin ang bawat isa sa kanila. Tayo na't magsimula.





Kailangan mo ng GCC compiler para patakbuhin at isakatuparan ang sumusunod na halimbawa. Ang compiler ay ginagamit upang patakbuhin ang lahat ng mga command upang lumikha at patakbuhin ang Linux '.a' file:



Ang mga sumusunod ay ang mga hakbang na ipinaliwanag sa pamamagitan ng iba't ibang mga utos at pamamaraan.

Hakbang 1: Mag-compile ng C Source File

Simulan ang gawain sa pamamagitan ng paggawa ng source file ng C gamit ang GCC compiler para i-compile ang C source file (.c) sa object file (.o) gamit ang sumusunod na command:

$ gcc -Pader -c * .c

Ang flag na '-Wall' ay nagbibigay-daan sa lahat ng mga babala at ang '-c' na flag ay nagsasabi sa GCC na mag-compile lang, hindi mag-link, sa puntong ito.

Hakbang 2: Gumawa ng Library Archive

Ang susunod na hakbang ay ang paglikha ng file ng library. Ang command na 'ar' ay lumilikha ng static na library archive (.a) mula sa mga object file. Samakatuwid, ginagamit namin ang sumusunod na utos:

$ Sa -cvq libfile.a * .O

Lumilikha ang command na ito ng isang static na archive file na pinangalanang 'libfile.a' sa pamamagitan ng pagsasama-sama ng iba't ibang object file na may extension na '.o' gamit ang command na 'ar' (archive) sa mga operating system ng Linux. Ang utos na ito ay may tatlong bagay na dapat mapansin: 'c', 'v', at 'q'. Hatiin natin ang mga bahagi at unawain ang layunin ng bawat bandila at argumento sa konteksto ng utos na ito:

ar: Ginagawa nito ang archive command sa mga Linux system. Ang pangunahing pag-andar ng command na 'ar' ay lumikha, magbago, at mag-extract mula sa archival.

-c: Ang flag na ito ay nagtuturo na lumikha ng isang bagong archive kung hindi pa ito nagagawa o hindi pa umiiral. Kung mayroong isang archive file na may ibinigay na pangalan, tinitiyak ng '-c' na flag na ito ay muling gagawin, na papalitan ang anumang nakaraang nilalaman.

-v: Ang verbose flag ay nagpapakita ng detalyadong impormasyon tungkol sa proseso ng pag-archive. Nagbibigay ito ng feedback kung aling mga file ang idinaragdag sa archive.

-q: Ang 'q' ay nangangahulugang 'mabilis na idagdag'. Hinihiling nito sa flag na 'ar' na agad na idagdag ang mga tinukoy na file sa archive nang hindi tinitingnan ang mga duplicate na simbolo o mga operasyong nakakaubos ng oras.

libfile.a: Kinakailangan ang pangalan ng file para sa utos na gagawin o babaguhin. Dito, nagbibigay kami ng pangalan ng file bilang 'libfile' na may extension na '.a' na nagpapahiwatig na ito ay isang static na file ng archive ng library.

*.o: Ang '*' sa dulo ng command ay kumakatawan sa bawat file sa napiling direktoryo na may extension na '.o' na tumutukoy sa mga object file. Ang mga object file ay ang mga resulta ng source code compilation at naglalaman ng machine code na hindi pa naka-link sa anumang final executable.

Hakbang 3: Pagtingin sa Mga Nilalaman ng Library

Ngayong nilikha namin ang archive ng library, makikita namin ito gamit ang command na 'ar -t'. Inililista ng command na 'ar -t' ang lahat ng nilalaman na naroroon sa library.

$ Sa -t libfile.a

Inililista ng command na 'ar -t libfile.a' ang lahat ng object file na nasa loob ng static library archive file na pinangalanang 'libfile.a' gamit ang command na 'ar' sa isang operating system ng Linux. Suriin natin ang bawat flag at ang kanilang functionality:

ar: Gaya ng nabanggit dati, ito ang archive command sa mga Linux system.

-t: Ang flag na '-t' ay ginagamit upang ipakita ang talaan ng mga nilalaman ng archive, na ipinapakita ang mga pangalan ng mga object file na naka-imbak sa loob ng 'libfile.a.'

libfile.a: Upang mabasa ang data, kailangan nating malaman ang pangalan ng archive file.

Hakbang 4: Paggamit ng Library sa Ibang Programa

Tingnan natin ngayon kung paano gamitin ang bagong binuong Linux '.a' file sa ibang program. Dahil gumawa kami ng library, maaari na itong magamit kahit saan at sa anumang programa sa pamamagitan lamang ng pagdaragdag ng library sa compile command. Magagawa natin ito sa tulong ng kasunod na utos. Kasama dito ang lahat ng kinakailangang header at link ng library.

$ gcc -O MyProgramMain.c -L landas / sa / ang lib ay -lfile

Sa command na ito, tinutukoy ng '-L' ang path ng library, mga link na '-lfile' laban sa libfile na 'library.a', inaalis ang prefix na 'lib' at ang suffix na '.a'.

Hakbang 5: Magpatakbo ng “.a” Linux File

Sa wakas, maaari nating patakbuhin ang '.a' na file. Ang kinalabasan ay ipinapakita sa iyo kaagad sa pagtakbo ng sumusunod na script sa iyong terminal:

$ . / MyProgramMain

Isinasagawa ng command na ito ang file, gamit ang mga functionality na ibinibigay sa parehong source file at sa naka-link na static na library.

Konklusyon

Ang paggawa at pagpapatakbo ng '.a' na file sa Linux ay nangangailangan ng pag-compile ng iba't ibang command na nagsasagawa ng paggawa, pag-compile, at pag-link ng file. Ang pag-unawa sa mga hakbang na ito at ang gumaganang functionality ng bawat command ay nagbibigay-daan sa mga developer na ayusin ang kanilang code, gumamit ng mga panlabas na library, at bumuo ng mga scalable na programa. Kung kailangan mong gamitin ang mga pangunahing utos tulad ng nano at GCC o malapit ka nang magtrabaho sa mas advanced na mga diskarte na may mga static na aklatan, ang pag-master ng mga kasanayang ito ay nakakatulong sa praktikal na pag-unlad na nakabatay sa Linux.