Zig Academy · Lekcja

Binarne pliki statyczne i musl

Dostarczaj samowystarczalne pliki wykonywalne.

Lekcja 4 z 413 kroki

Binarne pliki statyczne i musl to bezpłatna lekcja Zig Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Zig Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Zig Academy zawiera 4 lekcji w sumie.

Znaczenie słowa static

Plik binarny static zawiera swoje biblioteki wewnątrz pliku wykonywalnego, dzięki czemu działa bez zależności od bibliotek zainstalowanych na komputerze docelowym.

Dynamiczne a statyczne

Plik binarny dynamiczny ładuje biblioteki współdzielone w czasie działania. Plik statyczny zawiera je w sobie, zamieniając większy rozmiar na mniejszą liczbę zależności.

Dlaczego glibc utrudnia linkowanie statyczne

Bibliotekę C gnu, glibc, trudno w pełni linkować statycznie, a program może przestać działać w systemie z inną wersją glibc.

musl na ratunek

Biblioteka C musl jest niewielka i łatwo dołącza się statycznie do pliku binarnego, dzięki czemu jest domyślnym ABI dla przenośnych kompilacji systemu Linux.

Wybieranie musl w trójce

Wybierz musl, ustawiając ją jako pole ABI. Gdy -target kończy się na musl, Zig linkuje bibliotekę C przystosowaną do użycia statycznego.

zig build-exe main.zig -target x86_64-linux-musl

Często statycznie domyślnie

Dla celu Linux z musl Zig domyślnie linkuje libc statycznie, więc wynikowy plik wykonywalny jest od razu samodzielny.

Weryfikowanie za pomocą ldd

Sprawdź wynik w systemie Linux za pomocą ldd. Prawdziwie statyczny plik binarny zgłasza, że nie jest dynamicznym plikiem wykonywalnym.

ldd app

Uruchamianie w dowolnym systemie Linux

Statyczny plik binarny z musl można skopiować na niemal dowolny komputer z systemem Linux i uruchomić, nawet w minimalnym kontenerze, ponieważ nie wymaga zewnętrznej biblioteki libc.

Świetne rozwiązanie dla kontenerów

Pliki statyczne świetnie sprawdzają się w małych obrazach. Można umieścić jeden w kontenerze scratch bez bibliotek systemu operacyjnego, a mimo to nadal będzie działać.

Pamiętaj o kompromisach

Pliki statyczne są większe i zawierają własną bibliotekę libc, dlatego poprawka bezpieczeństwa w bibliotece wymaga ponownej kompilacji.

Zmniejszanie rozmiaru za pomocą ReleaseSmall

Aby zrekompensować większy rozmiar, kompiluj w trybie ReleaseSmall, który optymalizuje statyczny plik binarny pod kątem możliwie najmniejszego rozmiaru.

zig build-exe main.zig -target x86_64-linux-musl -O ReleaseSmall

Szybkie sprawdzenie

Przypomnij sobie, z którą biblioteką C Zig łączy przenośne, statyczne pliki binarne systemu Linux.

Podsumowanie

Nauczyłeś się, że statyczne pliki binarne zawierają swoje biblioteki oraz że wybór musl zapewnia przenośne, niezależne od zależności pliki wykonywalne systemu Linux. 📦

Bezpłatny start

Ucz się Zig dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Binarne pliki statyczne i musl” jest bezpłatna?

Tak — pełny tekst „Binarne pliki statyczne i musl” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Zig Academy, przejdź na CoddyKit PRO. Kurs Zig Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Binarne pliki statyczne i musl”?

Dostarczaj samowystarczalne pliki wykonywalne. Ćwiczysz Zig Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Zig Academy?

Nie wymagamy żadnego doświadczenia. Zig Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Binarne pliki statyczne i musl”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Zig Academy?

Tak. Każda lekcja Zig Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Cele i trójka -target
  2. Budowanie dla Linux, macOS i Windows
  3. Kompilowanie skrośne C za pomocą zig cc
  4. Binarne pliki statyczne i musl
← Powrót do Zig Academy