Zrozumienie sposobu tworzenia i uruchamiania pliku „.a” ma kluczowe znaczenie dla skutecznego tworzenia oprogramowania w środowisku Linux. Jest to kompleksowy poradnik dotyczący instalowania i konfigurowania pliku „.a” systemu Linux. Odkryjmy, czym jest plik „.a” w systemie Linux, poznajmy jego cel, strukturę oraz sposób jego tworzenia i wykonywania.
Co to jest plik „.a” w systemie Linux?
Plik „.a” systemu Linux to plik archiwum, który służy jako pojemnik na skompilowany kod i dane. Jest powszechnie znana jako biblioteka statyczna zawierająca kody powiązane z kodem wywołującym w czasie kompilacji, który staje się podstawową częścią aplikacji. Te pliki „.a” systemu Linux stanowią wstępnie skompilowany, podstawowy wkład do aplikacji, całkowicie kontrastując z plikami bibliotek dynamicznych systemu Linux „.so”, w których łączenie odbywa się w czasie wykonywania.
Wyobraźmy sobie scenariusz, w którym programista wdraża trzy różne programy. Wiedząc, że istnieje wspólna funkcjonalność tych programów, programista tworzy bibliotekę, która zawiera te wspólne funkcje i jest prezentowana jako plik „.a”. Ważną wiadomością, o której warto wiedzieć w tym momencie, jest to, że pliki „.a” Linuksa stają się zbiorem kodu i danych wielokrotnego użytku, którego inni programiści mogą używać w swoich projektach.
Warunki wstępne:
Zanim przejdziesz do nauki tworzenia i uruchamiania pliku „.a” w systemie Linux, ważne jest, aby poznać kilka podstawowych rzeczy. Przed wykonaniem funkcji w systemie Linux należy spełnić kilka warunków wstępnych. Są one następujące:
- Ubuntu 20.04 lub dowolna najnowsza wersja
- Dostęp do wiersza poleceń lub okna terminala
- Konto użytkownika, w szczególności uprawnienia sudo, dla różnych plików i katalogów
Jak utworzyć i uruchomić plik „.a” systemu Linux?
Tworzenie i uruchamianie pliku „.a” systemu Linux obejmuje szereg kroków: utworzenie, kompilację i wykonanie. Do wykonania tych czynności można wykorzystać różne sposoby, a każdy z nich zbadamy indywidualnie. Zacznijmy.
Do uruchomienia i wykonania poniższego przykładu potrzebny jest kompilator GCC. Kompilator służy do uruchamiania wszystkich poleceń tworzących i uruchamiających plik „.a” systemu Linux:
Poniżej przedstawiono kroki objaśnione za pomocą różnych poleceń i technik.
Krok 1: Skompiluj plik źródłowy C
Rozpocznij pracę od utworzenia pliku źródłowego C za pomocą kompilatora GCC w celu skompilowania plików źródłowych C (.c) do plików obiektowych (.o) za pomocą następującego polecenia:
$ gcc -Ściana -C * .CFlaga „-Wall” włącza wszystkie ostrzeżenia, a flaga „-c” informuje GCC tylko o konieczności kompilacji, a nie łączenia, w tym momencie.
Krok 2: Utwórz archiwum biblioteczne
Następnym krokiem jest utworzenie pliku biblioteki. Polecenie „ar” tworzy archiwum biblioteki statycznej (.a) z plików obiektowych. Dlatego używamy następującego polecenia:
$ Z -cvq plik lib.a * .OTo polecenie tworzy statyczny plik archiwum o nazwie „libfile.a”, łącząc różne pliki obiektowe z rozszerzeniem „.o” za pomocą polecenia „ar” (archiwum) w systemach operacyjnych Linux. W tym poleceniu należy zwrócić uwagę na trzy rzeczy: „c”, „v” i „q”. Rozłóżmy komponenty i zrozumiejmy cel każdej flagi i argumentu w kontekście tego polecenia:
ar: Wykonuje polecenie archiwizacji w systemach Linux. Podstawową funkcją polecenia „ar” jest tworzenie, modyfikowanie i wyodrębnianie z archiwum.
-c: Ta flaga instruuje utworzenie nowego archiwum, jeśli nie zostało jeszcze utworzone lub jeszcze nie istnieje. Jeśli plik archiwum o podanej nazwie istnieje, flaga „-c” zapewnia jego odtworzenie, zastępując całą poprzednią zawartość.
-v: Flaga pełna wyświetla szczegółowe informacje o procesie archiwizacji. Zapewnia informację zwrotną na temat tego, które pliki są dodawane do archiwum.
-q: „q” oznacza „szybkie dołączanie”. Prosi flagę „ar”, aby natychmiast dołączyła określone pliki do archiwum bez sprawdzania duplikatów symboli lub czasochłonnych operacji.
libfile.a: Nazwa pliku jest wymagana dla polecenia, które zostanie utworzone lub zmodyfikowane. Tutaj podajemy nazwę pliku jako „libfile” z rozszerzeniem „.a”, które wskazuje, że jest to plik archiwum biblioteki statycznej.
*.o: „*” na końcu polecenia reprezentuje każdy plik w wybranym katalogu z rozszerzeniem „.o”, które odnosi się do plików obiektowych. Pliki obiektowe są wynikami kompilacji kodu źródłowego i zawierają kod maszynowy, który nie jest jeszcze powiązany z żadnym końcowym plikiem wykonywalnym.
Krok 3: Przeglądanie zawartości biblioteki
Teraz, gdy utworzyliśmy archiwum biblioteki, możemy je zobaczyć za pomocą polecenia „ar –t”. Polecenie „ar –t” wyświetla całą zawartość biblioteki.
$ Z -T plik lib.aPolecenie „ar -t libfile.a” wyświetla listę wszystkich plików obiektowych zawartych w pliku archiwum biblioteki statycznej o nazwie „libfile.a” przy użyciu polecenia „ar” w systemie operacyjnym Linux. Przeanalizujmy każdą flagę i jej funkcjonalność:
ar: Jak wspomniano wcześniej, jest to polecenie archiwizacji w systemach Linux.
-t: Flaga „-t” służy do wyświetlania spisu treści archiwum, wyświetlając nazwy plików obiektowych przechowywanych w pliku „libfile.a”.
libfile.a: Aby odczytać dane, musimy znać nazwę pliku archiwum.
Krok 4: Korzystanie z biblioteki w innym programie
Zobaczmy teraz, jak wykorzystać nowo opracowany plik „.a” systemu Linux w innym programie. Ponieważ stworzyliśmy bibliotekę, można jej teraz używać w dowolnym miejscu i w dowolnym programie, po prostu dodając bibliotekę do polecenia kompilacji. Możemy tego dokonać za pomocą kolejnego polecenia. Zawiera wszystkie niezbędne nagłówki i linki biblioteki.
$ gcc -O MójProgramMain.c -L ścieżka / Do / biblioteka jest -lplikW tym poleceniu „-L” określa ścieżkę biblioteki, „-lfile” łączy z plikiem lib „library.a”, usuwając przedrostek „lib” i przyrostek „.a”.
Krok 5: Uruchom plik Linux „.a”.
Na koniec możemy uruchomić plik „.a”. Wynik zostanie wyświetlony natychmiast po uruchomieniu następującego skryptu w terminalu:
$ . / Mój program głównyTo polecenie wykonuje plik, wykorzystując funkcje dostępne zarówno w plikach źródłowych, jak i połączonej bibliotece statycznej.
Wniosek
Tworzenie i uruchamianie pliku „.a” w systemie Linux wymaga skompilowania różnych poleceń, które wykonują tworzenie, kompilację i łączenie plików. Zrozumienie tych kroków i działających funkcjonalności każdego polecenia umożliwia programistom organizowanie kodu, korzystanie z bibliotek zewnętrznych i tworzenie skalowalnych programów. Niezależnie od tego, czy potrzebujesz używać podstawowych poleceń, takich jak nano i GCC, czy masz zamiar pracować z bardziej zaawansowanymi technikami z bibliotekami statycznymi, opanowanie tych umiejętności pomaga w praktycznym programowaniu w oparciu o system Linux.