Kompletny przewodnik po instalacji i używaniu GCC w Ubuntu

目次

1. Wstęp

Czym jest GCC?

GCC (GNU Compiler Collection) to kompilator open-source zdolny do kompilowania wielu języków programowania, takich jak C i C++. Jest szeroko używany jako domyślny kompilator w wielu dystrybucjach Linuksa.

Kluczowe funkcje GCC:

  • Obsługuje wiele języków, w tym C, C++, Fortran, Javę i więcej.
  • Open source i wolny do użycia przez każdego.
  • Umożliwia szybką i niezawodną kompilację.

Dlaczego używać GCC na Ubuntu?

  1. Włączony jako standardowy pakiet Repozytoria Ubuntu zawierają GCC domyślnie, co ułatwia instalację.
  2. Obfite wsparcie i dokumentacja Ponieważ jest wielu użytkowników na całym świecie, istnieje bogactwo informacji dostępnych do rozwiązywania problemów i dostosowywania.
  3. Darmowy do użycia Możesz zbudować potężne środowisko deweloperskie niskim kosztem.
  4. Łatwy do dostosowania Możesz zarządzać wieloma wersjami GCC, co pozwala budować środowisko dostosowane do każdego projektu.

Podsumowanie

W tym artykule wprowadziliśmy przegląd GCC i korzyści z jego używania na Ubuntu. GCC to potężny kompilator obsługujący wiele języków i darmowy do użycia, a na Ubuntu jest szczególnie łatwy do zainstalowania.

2. Wymagania wstępne

Aktualizacja systemu i sprawdzenie zależności

Najpierw zaktualizuj informacje o pakietach Ubuntu do najnowszego stanu. To pomaga zapobiegać błędom podczas instalacji.

1. Aktualizacja systemu do najnowszego stanu

sudo apt update
sudo apt upgrade
  • sudo apt update : Aktualizuje listę pakietów do najnowszej wersji.
  • sudo apt upgrade : Uaktualnia zainstalowane pakiety do ich najnowszych wersji.

Uwagi:

  • Aktualizacja może zająć kilka minut.
  • Jeśli po aktualizacji pojawi się komunikat „wymagany restart”, zrestartuj system.

Sprawdzenie narzędzi deweloperskich

Aby zainstalować GCC, wymagane są podstawowe narzędzia deweloperskie i pakiety. Uruchom poniższe polecenie, aby zainstalować niezbędne pakiety z wyprzedzeniem.

sudo apt install build-essential

To polecenie instaluje niezbędne narzędzia deweloperskie, w tym GCC.

Przykłady zainstalowanych pakietów:

  • gcc (kompilator C)
  • g++ (kompilator C++)
  • make (narzędzie budowania)

Sprawdzenie statusu instalacji

Aby potwierdzić, które pakiety są zainstalowane i sprawdzić ich wersje, użyj poniższego polecenia:

gcc --version

Przykładowy wynik:

gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.

Jeśli widzisz ten wynik, możesz potwierdzić, że GCC został poprawnie zainstalowany.

Podsumowanie wymagań wstępnych

Do tego momentu ukończyłeś wymagania wstępne niezbędne do zainstalowania GCC.

  • Zaktualizowałeś i uaktualniłeś system do najnowszego stanu.
  • Zainstalowałeś wymagane pakiety, aby przygotować środowisko.
  • Zweryfikowałeś status instalacji GCC i wersję.

3. Jak zainstalować GCC

Podstawowe kroki instalacji

Na Ubuntu GCC można łatwo zainstalować z oficjalnego repozytorium. Postępuj zgodnie z poniższymi krokami, aby wykonać instalację.

  1. Zainstaluj pakiet build-essential
    sudo apt install build-essential
    

To polecenie instaluje GCC, G++ i pełny zestaw narzędzi deweloperskich.

  1. Potwierdź postęp instalacji Podczas instalacji, jeśli wyświetlony zostanie „Proceed? (Y/n)”, wpisz „Y” i naciśnij Enter.

Jak zweryfikować po instalacji

Po ukończeniu instalacji zweryfikuj wersję GCC, aby potwierdzić, że wszystko jest poprawnie zainstalowane:

gcc --version

Przykładowy wynik:

gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.

Jeśli informacje o wersji są wyświetlane jak pokazano, GCC został pomyślnie zainstalowany.

Instalowanie dodatkowych narzędzi lub bibliotek

Czasem instalacja samego GCC nie jest wystarczająca, więc możesz chcieć zainstalować następujące dodatkowe pakiety:

  1. Zainstaluj G++ (kompilator C++)
    sudo apt install g++
    
  1. Zainstaluj narzędzia do debugowania
    sudo apt install gdb
    
  1. Zainstaluj strony podręcznika deweloperskiego
    sudo apt install manpages-dev
    

To zapewnia, że możesz natychmiast odwołać się do pomocy i stron podręcznika związanych z GCC, gdy jest to potrzebne.

Rozwiązywanie problemów z nieudanymi instalacjami

  1. Pakiet nie znaleziony
    E: Unable to locate package build-essential
    

Rozwiązanie: Zaktualizuj informacje o repozytorium:

sudo apt update
sudo apt upgrade
  1. Występują błędy uprawnień
    Permission denied
    

Rozwiązanie: Użyj sudo na początku poleceń, aby uruchomić je z uprawnieniami administratora.

Podsumowanie kroków instalacji

W tej sekcji wyjaśniono, jak zainstalować GCC i zweryfikować instalację, a także jak zainstalować dodatkowe pakiety.

Kluczowe wnioski:

  • Użyj sudo apt install build-essential, aby zainstalować szybko.
  • Sprawdź wersję, aby zweryfikować status instalacji.
  • Dodaj G++, gdb i inne narzędzia w razie potrzeby.

4. Podstawowe użycie GCC

Tworzenie i kompilowanie prostego programu

  1. Utwórz przykładowy program

Najpierw utwórz prosty program „Hello, World!”:

nano hello.c

Gdy otworzy się edytor, wprowadź następujący kod:

#include <stdio.h>

int main() {
    printf("Hello, World!n");
    return 0;
}

Po wprowadzeniu naciśnij Ctrl + X, aby zapisać, następnie naciśnij Y, aby potwierdzić i wyjść.

Kompiluj program

Następnie skompiluj ten program za pomocą GCC:

gcc hello.c -o hello

Wyjaśnienie polecenia:

  • gcc : Polecenie kompilatora.
  • hello.c : Plik źródłowy do skompilowania.
  • -o hello : Określa nazwę pliku wyjściowego jako „hello.”

Uruchom skompilowany program

Uruchom skompilowany program za pomocą następującego polecenia:

./hello

Oczekiwany wynik:

Hello, World!

Jeśli to zostanie wyświetlone, program został pomyślnie skompilowany i wykonany.

Obsługa błędów

  1. Błędy spowodowane błędami w kodowaniu

Przykładowa wiadomość błędu:

hello.c: In function ‘main’:
hello.c:3:5: error: expected ‘;’ before ‘return’
    return 0;

Rozwiązanie:
Wiadomość błędu wskazuje lokalizację (np. linia 3). Sprawdź swój kod i popraw błędy składni.

  1. Błąd kompilacji

Przykładowy błąd:

gcc: command not found

Rozwiązanie:
GCC może nie być zainstalowany. Zainstaluj ponownie za pomocą:

sudo apt install build-essential
  1. Błąd w czasie wykonywania

Przykładowy błąd:

bash: ./hello: Permission denied

Rozwiązanie:
Jeśli plik nie ma uprawnień do wykonania, użyj:

chmod +x hello
./hello

Opcje optymalizacji

GCC pozwala na użycie opcji optymalizacji w celu poprawy wydajności programu.

Przykład: Określ poziom optymalizacji

gcc -O2 hello.c -o hello
  • -O1 : Podstawowe optymalizacje.
  • -O2 : Bardziej zaawansowane optymalizacje.
  • -O3 : Maksymalna optymalizacja (priorytet dla szybkości wykonania).

To pomaga w bardziej efektywnej optymalizacji szybkości wykonania lub rozmiaru kodu.

Podsumowanie

W tej sekcji omówiono tworzenie, kompilowanie i uruchamianie podstawowego programu za pomocą GCC.

Kluczowe wnioski:

  • Nauczyłeś się, jak tworzyć przykładowy kod i kompilować go.
  • Omówiono, jak radzić sobie z błędami, gdy wystąpią.
  • Wprowadzono opcje optymalizacji w celu zwiększenia wydajności.

5. Zarządzanie wieloma wersjami

Instalowanie wielu wersji

W Ubuntu możesz instalować różne wersje GCC jednocześnie. Zainstalujmy wiele wersji za pomocą kroków poniżej.

  1. Sprawdź dostępne wersje
    sudo apt search gcc-
    

To polecenie pozwala zobaczyć listę wersji GCC w repozytorium.

Przykładowy wynik:

gcc-9 - GNU C compiler
gcc-10 - GNU C compiler
gcc-11 - GNU C compiler
  1. Zainstaluj wymagane wersje

Na przykład, zainstaluj GCC 9 i GCC 10:

sudo apt install gcc-9 gcc-10

Po zakończeniu instalacji przejdź do konfiguracji przełączania wersji.

Jak przełączać wersje

Ubuntu obsługuje polecenie update-alternatives do łatwego przełączania wersji GCC.

  1. Zarejestruj zainstalowane wersje GCC za pomocą update-alternatives

Uruchom:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100

W tej konfiguracji GCC 10 jest zarejestrowany jako preferowany domyślny (priorytet 100).

  1. Wybierz wersję do użycia

Użyj następującego polecenia, aby ręcznie wybrać żądaną wersję:

sudo update-alternatives --config gcc

Przykładowe wyjście:

There are 2 choices for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gcc-10  100       auto mode
  1            /usr/bin/gcc-9   90        manual mode
  2            /usr/bin/gcc-10  100       manual mode

Press <enter> to keep the current choice[*], or type selection number:

Wprowadź żądany numer i naciśnij Enter.

Używanie konkretnej wersji na projekt

Jeśli chcesz używać konkretnej wersji dla każdego projektu, możesz odpowiednio przełączać linki symboliczne.

  1. Utwórz lub zaktualizuj link
    sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
    

To polecenie ustawia GCC 9 jako wersję domyślną.

  1. Sprawdź wersję
    gcc --version
    

Potwierdź, że skonfigurowana wersja jest poprawnie zastosowana.

Podsumowanie

W tej sekcji wyjaśniliśmy, jak zainstalować wiele wersji GCC i używać update-alternatives do łatwego przełączania.

Kluczowe wnioski:

  • Zainstaluj potrzebne wersje i zarządzaj nimi za pomocą update-alternatives .
  • Możesz również skonfigurować linki symboliczne, aby używać konkretnej wersji na projekt.

6. Rozwiązywanie problemów

Błędy podczas instalacji i jak je rozwiązać

Przykład błędu 1: Pakiet nie znaleziony

E: Unable to locate package build-essential

Przyczyna:
Lista pakietów nie jest aktualna lub konfiguracja repozytorium ma problemy.

Rozwiązanie:
Uruchom następujące polecenia, aby zaktualizować informacje o repozytorium:

sudo apt update
sudo apt upgrade
sudo apt install build-essential

Dodatkowe rozwiązanie:

sudo add-apt-repository universe
sudo apt update

To może umożliwić znalezienie pakietu.

Przykład błędu 2: Brak uprawnień

Permission denied

Przyczyna:
Polecenia nie są wykonywane z uprawnieniami administracyjnymi.

Rozwiązanie:
Dodaj sudo na początku wszystkich poleceń instalacyjnych.

sudo apt install build-essential

Błędy podczas kompilacji i jak je rozwiązać

Przykład błędu 1: Kompilator nie znaleziony

gcc: command not found

Przyczyna:
GCC nie jest zainstalowany lub PATH nie jest poprawnie ustawiony.

Rozwiązanie:
Sprawdź, czy GCC jest zainstalowany:

sudo apt install gcc

Jeśli jest zainstalowany, sprawdź i dostosuj link symboliczny:

sudo ln -s /usr/bin/gcc-10 /usr/bin/gcc

Przykład błędu 2: Błąd linkowania biblioteki

undefined reference to 'main'

Przyczyna:
Funkcja main nie jest zdefiniowana w twoim programie lub linkowanie nie powiodło się.

Rozwiązanie:
Upewnij się, że funkcja main jest włączona, i skompiluj ponownie z opcjami linkowania, np.:

gcc -o output main.c -lm

Błędy w czasie wykonywania i jak je rozwiązać

Przykład błędu 1: Brak uprawnień do wykonania

bash: ./program: Permission denied

Przyczyna:
Plik wykonywalny nie ma uprawnień do wykonania.

Rozwiązanie:
Nadaj uprawnienia do wykonania:

chmod +x program
./program

Przykład błędu 2: Brakujące biblioteki

error while loading shared libraries: libXXX.so: cannot open shared object file: No such file or directory

Przyczyna:
Wymagane współdzielone biblioteki nie są zainstalowane.

Rozwiązanie:
Sprawdź nazwę brakującej biblioteki i zainstaluj ją:

sudo apt install libXXX-dev

Błędy podczas przełączania wersji i rozwiązania

Przykład błędu: przełączanie nie zastosowane

gcc --version

Jeśli przełączona wersja nie jest pokazywana, ponownie sprawdź ustawienia update-alternatives.

Rozwiązanie:

  1. Sprawdź listę alternatyw:
    sudo update-alternatives --config gcc
    
  1. Wybierz poprawny numer.
  2. Zaktualizuj link symboliczny.
    sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
    

Podsumowanie

W tej sekcji wyjaśniliśmy powszechne błędy występujące podczas instalacji i używania GCC oraz strategie ich rozwiązywania.

Kluczowe wnioski:

  • Błędy instalacji często można rozwiązać, aktualizując repozytoria lub dostosowując ustawienia repozytoriów.
  • Błędy kompilacji można usunąć, sprawdzając kod i opcje linkowania.
  • Błędy w czasie wykonywania często wynikają z problemów z uprawnieniami lub brakującymi bibliotekami.
  • Problemy z przełączaniem wersji można obsłużyć za pomocą linków symbolicznych i dostosowań update-alternatives.

7. FAQ

Jak zainstalować najnowszą wersję GCC?

Pytanie:
Chcę zainstalować najnowszą wersję GCC, ale domyślne repozytorium oferuje tylko starsze wersje. Co powinienem zrobić?

Odpowiedź:
Aby zainstalować najnowszą wersję GCC, możesz dodać repozytorium PPA.

  1. Dodaj repozytorium PPA:
    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    
  1. Zaktualizuj listę pakietów:
    sudo apt update
    
  1. Zainstaluj najnowszą wersję:
    sudo apt install gcc-12
    
  1. Sprawdź wersję:
    gcc --version
    

Jak odinstalować GCC?

Pytanie:
Chcę odinstalować GCC. Jak powinienem to zrobić?

Odpowiedź:
Możesz usunąć GCC za pomocą następujących poleceń:

sudo apt remove gcc
sudo apt autoremove

Jeśli chcesz również usunąć powiązane narzędzia, dodaj:

sudo apt remove build-essential

Co zrobić, jeśli dostępne są tylko starsze wersje?

Pytanie:
Nawet gdy używam update-alternatives --config gcc, pojawiają się tylko starsze wersje. Jak dodać nowszą wersję?

Odpowiedź:
Ręcznie dodaj nowszą wersję do ustawień alternatyw.

  1. Zainstaluj wersję, której potrzebujesz:
    sudo apt install gcc-12
    
  1. Dodaj ją ręcznie do alternatyw:
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120
    
  1. Wybierz wersję:
    sudo update-alternatives --config gcc
    

Co zrobić, jeśli wystąpią błędy zależności?

Pytanie:
Podczas instalacji GCC pojawiają się błędy zależności. Jak je rozwiązać?

Odpowiedź:
Błędy zależności mogą wynikać z nieaktualnego systemu. Uruchom:

sudo apt update
sudo apt upgrade

Jeśli to nie rozwiąże problemu, automatycznie napraw uszkodzone zależności:

sudo apt --fix-broken install

Jak użyć konkretnej wersji GCC dla określonego projektu?

Pytanie:
Chcę używać różnych wersji GCC dla różnych projektów. Jak to skonfigurować?

Odpowiedź:
Utwórz link symboliczny w katalogu projektu wskazujący na pożądany binarny GCC.

  1. Utwórz lokalny link:
    ln -s /usr/bin/gcc-9 ./gcc
    
  1. Użyj go lokalnie w poleceniach kompilacji:
    ./gcc -o program program.c
    

Co zrobić, jeśli wystąpi błąd „command not found”?

Pytanie:
Mimo zainstalowania GCC widzę komunikat „gcc: command not found”. Co powinienem zrobić?

Odpowiedź:
Najpierw potwierdź instalację:

dpkg -l | grep gcc

Jeśli GCC nie jest zainstalowany, zainstaluj go ponownie:

sudo apt install gcc

Jeśli nadal nie działa, sprawdź link symboliczny:

ls -l /usr/bin/gcc

Jeśli link jest uszkodzony, napraw go:

sudo ln -sf /usr/bin/gcc-10 /usr/bin/gcc

Podsumowanie

W tej sekcji przedstawiliśmy często zadawane pytania oraz ich konkretne rozwiązania dotyczące GCC.

Kluczowe wnioski:

  • Najnowszą wersję można zainstalować za pomocą repozytoriów PPA.
  • Odinstalowanie i zarządzanie wersjami są łatwe dzięki update-alternatives.
  • Podaliśmy również konkretne przykłady poleceń do rozwiązywania problemów.

8. Wniosek i kolejne kroki

Podsumowanie tego artykułu

  1. Przegląd GCC i jego roli
  • GCC to potężny kompilator obsługujący wiele języków, takich jak C i C++.
  • W systemie Ubuntu można go łatwo zainstalować z oficjalnego repozytorium, co czyni go idealnym do budowania środowisk deweloperskich.
  1. Kroki instalacji i przygotowania
  • Zaktualizowaliśmy system i zainstalowaliśmy pakiet build-essential.
  • Sprawdziliśmy również wersje i obsłużyliśmy rozwiązywanie problemów z zależnościami.
  1. Podstawowe użycie
  • Wyjaśniliśmy, jak tworzyć, kompilować i uruchamiać przykładowe programy.
  • Omówiliśmy, jak reagować na błędy i używać opcji optymalizacji.
  1. Zarządzanie wieloma wersjami i przełączanie
  • Wyjaśniliśmy, jak używać update-alternatives do przełączania między wersjami GCC dla poszczególnych projektów.
  1. Rozwiązywanie problemów i FAQ
  • Omówiliśmy możliwe błędy instalacji i użycia oraz podaliśmy konkretne rozwiązania.

Dodatkowe zasoby

Oto zasoby, które pomogą w dalszej nauce lub zastosowaniach:

  1. Oficjalna dokumentacja Ubuntu
  • Oficjalna strona Ubuntu zawiera szczegółowe przewodniki dotyczące zarządzania pakietami i narzędziami deweloperskimi.
  1. Oficjalna dokumentacja GNU GCC
  1. Przewodniki po konsoli Linux
  • Linux Console publikuje informacje o rozwiązywaniu problemów w różnych tematach Linuxa.
  1. Strony edukacyjne i fora

Kolejne kroki

  1. Zastosowanie GCC w rzeczywistych projektach
  • Użyj GCC w rzeczywistych projektach i przeprowadź bardziej zaawansowany rozwój.
  1. Używanie bibliotek i rozszerzeń
  • Zainstaluj dodatkowe biblioteki w razie potrzeby, aby rozszerzyć funkcje projektu.
  1. Nauka nowych języków i narzędzi
  • Poprzez naukę innych języków lub narzędzi budowania, dąż do dalszego rozwoju umiejętności.
  1. Udział w społeczności
  • Dołącz do forów lub projektów open-source, dziel się wiedzą i rozwijaj praktyczne umiejętności we współpracy.

Słowa na zakończenie

W tym artykule wyjaśniliśmy krok po kroku, jak zainstalować i używać GCC na Ubuntu. Obejmuje to wszystko, od podstaw po rozwiązywanie problemów, co ułatwia nawet początkującym konfigurację środowiska deweloperskiego.

Jedna ostateczna uwaga:
Użyj tego artykułu jako odniesienia do zastosowania GCC we własnych projektach, ciesz się programowaniem i odwołuj się do FAQ lub dodatkowych zasobów, jeśli pojawią się nowe pytania.

W następnym artykule planuję omówić podstawy składni C i C++ oraz zaawansowane techniki rozwoju. Proszę śledzić!