Binarne pliki statyczne i musl
Dostarczaj samowystarczalne pliki wykonywalne.
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-muslCzę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 appUruchamianie 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 ReleaseSmallSzybkie 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. 📦
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
- Cele i trójka -target
- Budowanie dla Linux, macOS i Windows
- Kompilowanie skrośne C za pomocą zig cc
- Binarne pliki statyczne i musl