Repolode
jart

jart/cosmopolitan

Стандартная библиотека C и набор инструментов для сборки одного исполняемого файла, который работает в Linux, macOS, Windows, BSD и BIOS.

Звёзды
21,434
Форки
785
Открытые issues
226
Последний коммит
18 дней назад

Что это?

Cosmopolitan Libc позволяет один раз собрать программы на C и C++, чтобы они работали в Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD и BIOS. Проект перенастраивает стандартные GCC и Clang для создания исполняемых файлов в полиглотном формате Actually Portable Executable (APE), которым не нужны интерпретатор или виртуальная машина.

В проект входит дистрибутив компилятора cosmocc, которым пользуются как обычным компилятором C. С его помощью также можно собирать существующие проекты с открытым исходным кодом на базе autotools. В среде выполнения есть встроенные параметры трассировки, например --strace и --ftrace, для отладки системных вызовов и вызовов функций.

В репозитории также есть система сборки из исходного кода с режимами tiny и tinylinux для создания бинарных файлов меньшего размера, а ещё инструкции по настройке платформы для загрузки APE в Linux и WSL.

Ключевые возможности

  • 01Собирает программы на C и C++ в единые исполняемые файлы, работающие в нескольких операционных системах.
  • 02Работает со стандартными наборами инструментов GCC и Clang через дистрибутив cosmocc.
  • 03Включает параметры среды выполнения --strace и --ftrace для отладки.
  • 04Предлагает режимы сборки, например tiny и tinylinux, для создания бинарных файлов меньшего размера.
  • 05Поддерживает сборку проектов с открытым исходным кодом на базе autotools.

Сценарии использования

  • Распространение инструмента командной строки в виде одного файла, работающего в Linux, macOS и Windows.
  • Упаковка переносимых утилит или серверов для систем, где не установлена среда выполнения.
  • Сборка существующих проектов на C для нескольких операционных систем без отдельных сборок под каждую платформу.

Быстрый старт

  1. 1

    Скачайте релиз компилятора cosmocc

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

    Распакуйте архив компилятора

    unzip cosmocc.zip
  3. 3

    Скомпилируйте программу Hello World

    cosmocc -o hello hello.c
  4. 4

    Запустите полученный исполняемый файл

    ./hello

Что важно знать

  • В некоторых дистрибутивах Linux программы APE не запускаются, пока вы не зарегистрируете загрузчик APE в binfmt_misc.
  • Запускать программы APE в WSL небезопасно, если не отключить WSLInterop. Для Windows 7 и Vista также нужна отдельная ветка сообщества.

В подборках

Темы

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

Частые вопросы

Что такое cosmopolitan?
Стандартная библиотека C и набор инструментов для сборки одного исполняемого файла, который работает в Linux, macOS, Windows, BSD и BIOS. Cosmopolitan Libc позволяет один раз собрать программы на C и C++, чтобы они работали в Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD и BIOS. Проект перенастраивает стандартные GCC и Clang для создания исполняемых файлов в полиглотном формате Actually Portable Executable (APE), которым не нужны интерпретатор или виртуальная машина.
cosmopolitan можно использовать бесплатно? Какая у него лицензия?
cosmopolitan распространяется с открытым исходным кодом под лицензией ISC. Перед использованием в коммерческих продуктах проверьте условия лицензии.
cosmopolitan всё ещё поддерживается?
Активно поддерживается. Последний коммит в cosmopolitan — 20 окт. 2026 г..
Для чего можно использовать cosmopolitan?
Распространение инструмента командной строки в виде одного файла, работающего в Linux, macOS и Windows. Упаковка переносимых утилит или серверов для систем, где не установлена среда выполнения. Сборка существующих проектов на C для нескольких операционных систем без отдельных сборок под каждую платформу.
Как установить cosmopolitan?
Скачайте релиз компилятора cosmocc: wget https://cosmo.zip/pub/cosmocc/cosmocc.zip Распакуйте архив компилятора: unzip cosmocc.zip Скомпилируйте программу Hello World: cosmocc -o hello hello.c Запустите полученный исполняемый файл: ./hello
Где скачать cosmopolitan?
Исходный код и инструкции по установке — на GitHub: https://github.com/jart/cosmopolitan

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

CLI-инструмент для сборки автономных PHP-бинарников без зависимостей, с выбранными расширениями, для Linux, macOS и Windows.

DevOps и облака#php#static-binary#cli
2 тыс.+4 за неделю433PHPMITАктивно поддерживаетсяОбновлён 12 часов назад