Repolode
jart

jart/cosmopolitan

Una biblioteca estándar de C y una cadena de herramientas para crear un único ejecutable que funciona de forma nativa en Linux, macOS, Windows, BSD y BIOS.

Estrellas
21,431
Forks
784
Issues abiertos
226
Último commit
hace 17 días

¿Qué es?

Cosmopolitan Libc permite compilar programas en C y C++ una sola vez y ejecutarlos en Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD y BIOS. Reconfigura versiones estándar de GCC y Clang para generar un formato de ejecutable políglota llamado Actually Portable Executable (APE), que no necesita intérprete ni máquina virtual.

El proyecto ofrece la distribución del compilador cosmocc, que se usa como un compilador de C convencional y también permite compilar proyectos de código abierto existentes basados en autotools. El entorno de ejecución incluye opciones de trazado integradas, como --strace y --ftrace, para depurar llamadas al sistema y a funciones.

El repositorio también incluye un sistema de compilación desde el código fuente con modos como tiny y tinylinux para generar binarios más pequeños, además de notas para configurar plataformas y cargar APE en Linux y WSL.

Funciones clave

  • 01Compila programas en C y C++ en ejecutables únicos que funcionan en varios sistemas operativos.
  • 02Funciona con las cadenas de herramientas estándar de GCC y Clang mediante la distribución cosmocc.
  • 03Incluye las opciones de ejecución --strace y --ftrace para depurar.
  • 04Ofrece modos de compilación como tiny y tinylinux para generar binarios más pequeños.
  • 05Permite compilar proyectos de código abierto basados en autotools.

Casos de uso

  • Distribuir una herramienta de línea de comandos en un único archivo que funcione en Linux, macOS y Windows.
  • Empaquetar utilidades o servidores portátiles para sistemas que no tengan un entorno de ejecución instalado.
  • Compilar proyectos de C existentes para varios sistemas operativos sin hacer compilaciones específicas para cada plataforma.

Inicio rápido

  1. 1

    Descarga la versión del compilador cosmocc

    wget https://cosmo.zip/pub/cosmocc/cosmocc.zip
  2. 2

    Descomprime el archivo del compilador

    unzip cosmocc.zip
  3. 3

    Compila un programa Hello World

    cosmocc -o hello hello.c
  4. 4

    Ejecuta el archivo ejecutable resultante

    ./hello

Antes de usarlo

  • En algunas distribuciones de Linux, los programas APE no se ejecutan hasta que registras el cargador APE con binfmt_misc.
  • Ejecutar programas APE en WSL no es seguro a menos que desactives WSLInterop. Además, Windows 7 y Vista necesitan una rama comunitaria independiente.

En colecciones

Temas

#libc#compiler#cross-platform#portable-executable#toolchain#bios#containers#darwin#efi#freebsd

Preguntas frecuentes

¿Qué es cosmopolitan?
Una biblioteca estándar de C y una cadena de herramientas para crear un único ejecutable que funciona de forma nativa en Linux, macOS, Windows, BSD y BIOS. Cosmopolitan Libc permite compilar programas en C y C++ una sola vez y ejecutarlos en Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD y BIOS. Reconfigura versiones estándar de GCC y Clang para generar un formato de ejecutable políglota llamado Actually Portable Executable (APE), que no necesita intérprete ni máquina virtual.
¿cosmopolitan es gratuito? ¿Qué licencia tiene?
cosmopolitan es open source bajo la licencia ISC. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿cosmopolitan sigue mantenido?
Mantenimiento activo. El último commit de cosmopolitan fue el 20 oct 2026.
¿Para qué puedo usar cosmopolitan?
Distribuir una herramienta de línea de comandos en un único archivo que funcione en Linux, macOS y Windows. Empaquetar utilidades o servidores portátiles para sistemas que no tengan un entorno de ejecución instalado. Compilar proyectos de C existentes para varios sistemas operativos sin hacer compilaciones específicas para cada plataforma.
¿Cómo se instala cosmopolitan?
Descarga la versión del compilador cosmocc: wget https://cosmo.zip/pub/cosmocc/cosmocc.zip Descomprime el archivo del compilador: unzip cosmocc.zip Compila un programa Hello World: cosmocc -o hello hello.c Ejecuta el archivo ejecutable resultante: ./hello
¿Dónde consigo cosmopolitan?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/jart/cosmopolitan

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados