Go 编程语言,用于构建简单、可靠、高效软件的开源语言。
jart/cosmopolitan
一个让 C/C++ 程序一次构建、到处运行的标准库与工具链,产物可在多种操作系统上原生运行。
- Star
- 21,432
- Fork
- 784
- 未关闭 Issue
- 226
- 最近提交
- 17天前
这是什么?
Cosmopolitan Libc 让 C 和 C++ 程序只需构建一次,即可在 Linux、macOS、Windows、FreeBSD、OpenBSD、NetBSD 以及 BIOS 上运行。它通过改造 GCC 和 Clang 的输出,生成一种名为 APE(Actually Portable Executable)的通用可执行格式,因此无需解释器或虚拟机。
项目提供 cosmocc 编译器发行包,使用方式与普通 C 编译器相同,也可以用来构建基于 autotools 的开源项目。运行时内置 --strace、--ftrace 等调试选项,用于查看系统调用和函数调用日志。
仓库还包含源码构建系统,支持 tiny、tinylinux 等构建模式以生成更小的二进制文件,并附有在 Linux 和 WSL 上配置 APE 加载器的说明。
核心功能
- 01将 C 和 C++ 程序编译为可在多个操作系统上运行的单一可执行文件。
- 02基于标准 GCC 和 Clang 工具链,通过 cosmocc 发行包使用。
- 03运行时内置 --strace 和 --ftrace 调试选项。
- 04提供 tiny、tinylinux 等构建模式以减小二进制体积。
- 05可用于构建基于 autotools 的开源项目。
适用场景
- 将命令行工具打包为一个文件,在 Linux、macOS 和 Windows 上通用。
- 为未安装运行时的系统打包便携工具或服务。
- 无需为每个平台分别编译,即可让现有 C 项目跨系统运行。
快速上手
- 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 是什么?
- 一个让 C/C++ 程序一次构建、到处运行的标准库与工具链,产物可在多种操作系统上原生运行。 Cosmopolitan Libc 让 C 和 C++ 程序只需构建一次,即可在 Linux、macOS、Windows、FreeBSD、OpenBSD、NetBSD 以及 BIOS 上运行。它通过改造 GCC 和 Clang 的输出,生成一种名为 APE(Actually Portable Executable)的通用可执行格式,因此无需解释器或虚拟机。
- cosmopolitan 可以免费使用吗?用的什么许可证?
- cosmopolitan 以 ISC 许可证开源。用于商业产品前,请先确认许可证条款。
- cosmopolitan 还在维护吗?
- 活跃维护中。cosmopolitan 最近一次提交是在 2026年10月20日。
- 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
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
模块化的编译器与工具链技术集合,包含 LLVM 核心、Clang 前端、libc++ 标准库和 LLD 链接器。
一款命令行与终端界面工具,可追溯进程、端口、容器或文件的启动来源链。
一个命令行工具,可为 Linux、macOS 和 Windows 构建无外部依赖、可直接运行的独立 PHP 可执行文件。
一门实验性的编译型编程语言,语法规则面向 AI 生成、人工审阅的代码,无垃圾回收,编译到 C。
基于 QEMU 的封装工具,自动下载系统镜像并启动优化配置的 Windows、macOS 和 Linux 虚拟机。