Repolode
jart

jart/cosmopolitan

Linux、macOS、Windows、BSD、BIOSでネイティブに動作する単一実行ファイルをビルドできるC標準ライブラリとツールチェーン。

スター
21,434
フォーク
785
未解決の Issue
226
最終コミット
18 日前

これは何?

Cosmopolitan Libcを使うと、CおよびC++プログラムを一度ビルドするだけで、Linux、macOS、Windows、FreeBSD、OpenBSD、NetBSD、BIOS上で実行できます。標準のGCCとClangを再構成し、Actually Portable Executable(APE)と呼ばれるポリグロット形式の実行ファイルを出力するため、インタープリターや仮想マシンは不要です。

このプロジェクトは、通常のCコンパイラーと同じように使えるコンパイラー配布版cosmoccを提供しており、既存のautotoolsベースのオープンソースプロジェクトのビルドにも利用できます。ランタイムには、システムコールや関数呼び出しのデバッグに使える--straceや--ftraceなどのトレース機能が組み込まれています。

リポジトリには、バイナリーを小さくするtinyやtinylinuxなどのビルドモードを備えたソースビルドシステムのほか、LinuxやWSLでAPEをロードするためのプラットフォーム設定に関するメモも含まれています。

主な機能

  • 01複数のOSで動作する単一の実行ファイルに、CおよびC++プログラムをビルドできます。
  • 02cosmocc配布版を通じて、標準のGCCおよびClangツールチェーンを利用できます。
  • 03デバッグ用のランタイムオプションとして--straceと--ftraceを備えています。
  • 04バイナリーを小さくするtinyやtinylinuxなどのビルドモードを提供します。
  • 05autotoolsベースの既存オープンソースプロジェクトのビルドに対応しています。

ユースケース

  • Linux、macOS、Windowsで動作するコマンドラインツールを、単一ファイルとして配布する。
  • ランタイムがインストールされていないシステム向けに、ポータブルなユーティリティやサーバーをパッケージ化する。
  • プラットフォームごとにビルドを分けずに、既存のCプロジェクトを複数のOS向けにビルドする。

クイックスタート

  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ディストリビューションでは、binfmt_miscにAPEローダーを登録するまでAPEプログラムが動作しないことがあります。
  • WSLでAPEプログラムを実行するのは、WSLInteropを無効にしない限り安全ではありません。また、Windows 7およびVistaでは、別のコミュニティブランチが必要です。

収録されている特集

トピック

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

よくある質問

cosmopolitan とは?
Linux、macOS、Windows、BSD、BIOSでネイティブに動作する単一実行ファイルをビルドできるC標準ライブラリとツールチェーン。 Cosmopolitan Libcを使うと、CおよびC++プログラムを一度ビルドするだけで、Linux、macOS、Windows、FreeBSD、OpenBSD、NetBSD、BIOS上で実行できます。標準のGCCとClangを再構成し、Actually Portable Executable(APE)と呼ばれるポリグロット形式の実行ファイルを出力するため、インタープリターや仮想マシンは不要です。
cosmopolitan は無料で使えますか?ライセンスは?
cosmopolitan は ISC ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
cosmopolitan は今もメンテナンスされていますか?
活発にメンテナンス中。cosmopolitan の最終コミットは 2026年10月20日 です。
cosmopolitan は何に使えますか?
Linux、macOS、Windowsで動作するコマンドラインツールを、単一ファイルとして配布する。 ランタイムがインストールされていないシステム向けに、ポータブルなユーティリティやサーバーをパッケージ化する。 プラットフォームごとにビルドを分けずに、既存のCプロジェクトを複数のOS向けにビルドする。
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 をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト