0Pricing
Zig Academy · Lección

Binarios estáticos y musl

Distribuya ejecutables autocontenidos.

Binarios estáticos y musl es una lección gratuita de Zig Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Zig Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Zig Academy incluye 4 lecciones en total.

Qué significa estático

Un binario estático incluye sus bibliotecas dentro del ejecutable, por lo que se ejecuta sin depender de las bibliotecas instaladas en la máquina de destino.

Dinámico frente a estático

Un binario dinámico carga las bibliotecas compartidas en tiempo de ejecución. Uno estático las incluye, a cambio de un archivo más grande y menos dependencias.

Por qué glibc se resiste al enlazado estático

La biblioteca C de GNU, glibc, es difícil de enlazar completamente de forma estática y puede fallar en sistemas con una versión diferente de glibc.

musl al rescate

La biblioteca C musl es pequeña y se enlaza limpiamente en un binario estático, por lo que es la ABI preferida para compilaciones portables de Linux.

Elija musl en el triple

Elija musl estableciéndola como el campo ABI. Cuando -target termina en musl, Zig enlaza la biblioteca C adecuada para binarios estáticos.

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

A menudo estático de forma predeterminada

Para un destino Linux con musl, Zig enlaza libc de forma estática de manera predeterminada, así que el ejecutable resultante ya funciona por sí solo.

Verifique con ldd

Compruebe el resultado en Linux con ldd. Un binario realmente estático indica que no es un ejecutable dinámico.

ldd app

Ejecute en cualquier lugar de Linux

Puede copiar un binario estático con musl a casi cualquier sistema Linux y ejecutarlo, incluso en contenedores mínimos, porque no necesita ninguna libc externa.

Ideal para contenedores

Los binarios estáticos son ideales para imágenes pequeñas. Puede colocar uno en un contenedor scratch sin bibliotecas del sistema y aun así se ejecuta.

Tenga en cuenta las concesiones

Los archivos estáticos son más grandes e incluyen su propia libc, por lo que una corrección de seguridad en la biblioteca significa que debe recompilar para actualizarla.

Reduzca el tamaño con ReleaseSmall

Para compensar el mayor tamaño, compile en ReleaseSmall, que optimiza el binario estático para ocupar el menor espacio posible.

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

Comprobación rápida

Recuerde con qué biblioteca C combina Zig los binarios estáticos portables de Linux.

Resumen

Ha aprendido que los binarios estáticos incluyen sus bibliotecas y que seleccionar musl proporciona ejecutables de Linux portables y sin dependencias. 📦

Preguntas frecuentes

¿La lección «Binarios estáticos y musl» es gratis?

Sí — el texto completo de «Binarios estáticos y musl» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Zig Academy, actualiza a CoddyKit PRO. El curso de Zig Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Binarios estáticos y musl»?

Distribuya ejecutables autocontenidos. Practicas Zig Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Zig Academy?

No se requiere experiencia previa. Zig Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Binarios estáticos y musl»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Zig Academy?

Sí. Cada lección de Zig Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Destinos y la terna -target
  2. Compilar para Linux, macOS y Windows
  3. Compilación cruzada de C con zig cc
  4. Binarios estáticos y musl
← Volver a Zig Academy