Goは、シンプルで信頼性が高く、効率的なソフトウェアを開発するためのオープンソースプログラミング言語です。
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
cosmoccコンパイラのリリースをダウンロードする
wget https://cosmo.zip/pub/cosmocc/cosmocc.zip - 2
コンパイラのアーカイブを解凍する
unzip cosmocc.zip - 3
Hello Worldプログラムをコンパイルする
cosmocc -o hello hello.c - 4
生成された実行ファイルを実行する
./hello
使う前に知っておきたいこと
- 一部のLinuxディストリビューションでは、binfmt_miscにAPEローダーを登録するまでAPEプログラムが動作しないことがあります。
- WSLでAPEプログラムを実行するのは、WSLInteropを無効にしない限り安全ではありません。また、Windows 7およびVistaでは、別のコミュニティブランチが必要です。
収録されている特集
トピック
よくある質問
- 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 の数値は毎日更新されます。
関連プロジェクト
LLVMコア、Clang C/C++フロントエンド、libc++、LLDリンカーなどを含む、モジュール式のコンパイラおよびツールチェーン技術群。
プロセス、ポート、コンテナ、ファイルを起点までたどり、起動したシステムの連鎖を明らかにするCLI/TUIです。
Linux、macOS、Windows向けに、選択した拡張機能を含む依存関係不要のPHPバイナリをビルドするCLIツール。
AI生成コードを人がレビューすることを想定した、明示的な構文とGC不要のメモリ管理を備え、Cにコンパイルする実験的なプログラミング言語。
OSイメージを自動ダウンロードし、最適化された仮想マシンを起動するQEMUラッパー。