Repolode
jart

jart/cosmopolitan

Uma biblioteca padrão de C e uma cadeia de ferramentas que geram um único executável compatível com Linux, macOS, Windows, BSDs e BIOS.

Estrelas
21,434
Forks
785
Issues abertas
226
Último commit
há 18 dias

O que é?

Cosmopolitan Libc permite compilar programas em C e C++ uma vez e executá-los em Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD e BIOS. Ela reconfigura o GCC e o Clang padrão para gerar um formato de executável poliglota chamado Actually Portable Executable (APE), que dispensa interpretador ou máquina virtual.

O projeto oferece a distribuição do compilador cosmocc, que funciona como um compilador C comum e também pode ser usada para compilar projetos open source existentes baseados em autotools. O runtime inclui opções de tracing integradas, como --strace e --ftrace, para depurar chamadas de sistema e de funções.

O repositório também contém um sistema de build a partir do código-fonte, com modos como tiny e tinylinux para gerar binários menores, além de instruções para configurar o carregamento de APE no Linux e no WSL.

Recursos principais

  • 01Compila programas em C e C++ em executáveis únicos que rodam em vários sistemas operacionais.
  • 02Funciona com toolchains padrão do GCC e do Clang por meio da distribuição cosmocc.
  • 03Inclui as opções de runtime --strace e --ftrace para depuração.
  • 04Oferece modos de build como tiny e tinylinux para gerar binários menores.
  • 05Permite compilar projetos open source existentes baseados em autotools.

Casos de uso

  • Distribuir uma ferramenta de linha de comando em um único arquivo compatível com Linux, macOS e Windows.
  • Empacotar utilitários ou servidores portáveis para sistemas sem um runtime instalado.
  • Compilar projetos C existentes para vários sistemas operacionais sem fazer builds separados para cada plataforma.

Início rápido

  1. 1

    Baixe a versão do compilador cosmocc

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

    Descompacte o arquivo do compilador

    unzip cosmocc.zip
  3. 3

    Compile um programa Hello World

    cosmocc -o hello hello.c
  4. 4

    Execute o arquivo executável resultante

    ./hello

Antes de usar

  • Em algumas distribuições Linux, os programas APE não funcionam até que você registre o carregador APE no binfmt_misc.
  • Executar programas APE no WSL não é seguro, a menos que você desative o WSLInterop. Além disso, o Windows 7 e o Vista precisam de uma branch comunitária separada.

Em coleções

Tópicos

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

Perguntas frequentes

O que é cosmopolitan?
Uma biblioteca padrão de C e uma cadeia de ferramentas que geram um único executável compatível com Linux, macOS, Windows, BSDs e BIOS. Cosmopolitan Libc permite compilar programas em C e C++ uma vez e executá-los em Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD e BIOS. Ela reconfigura o GCC e o Clang padrão para gerar um formato de executável poliglota chamado Actually Portable Executable (APE), que dispensa interpretador ou máquina virtual.
cosmopolitan é gratuito? Qual é a licença?
cosmopolitan é open source sob a licença ISC. Confira os termos da licença antes de usá-lo em produtos comerciais.
cosmopolitan ainda é mantido?
Manutenção ativa. O último commit de cosmopolitan foi em 20 de out. de 2026.
Para que posso usar cosmopolitan?
Distribuir uma ferramenta de linha de comando em um único arquivo compatível com Linux, macOS e Windows. Empacotar utilitários ou servidores portáveis para sistemas sem um runtime instalado. Compilar projetos C existentes para vários sistemas operacionais sem fazer builds separados para cada plataforma.
Como instalar cosmopolitan?
Baixe a versão do compilador cosmocc: wget https://cosmo.zip/pub/cosmocc/cosmocc.zip Descompacte o arquivo do compilador: unzip cosmocc.zip Compile um programa Hello World: cosmocc -o hello hello.c Execute o arquivo executável resultante: ./hello
Onde consigo cosmopolitan?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/jart/cosmopolitan

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados