这个项目能做什么
Cosmopolitan Libc 是一个 C 库和工具链,使 C/C++ 表现得像一次构建、随处运行的语言,类似于 Java 的精神,但无需解释器或虚拟机。它重新配置标准的 GCC 和 Clang,生成符合 POSIX 标准的多语言可执行格式,可在 Linux、macOS、Windows、FreeBSD、OpenBSD 7.3、NetBSD 和 BIOS 上原生运行,旨在实现高性能和极小体积。
入门以 cosmocc 编译器为中心,可从 cosmo.zip 以 zip 形式分发。解压后,简单的 hello.c 可通过 `cosmocc -o hello hello.c` 编译并直接运行。运行时默认链接重量级故障排除功能:`--strace` 记录系统调用,`--ftrace` 记录函数调用,两者均使用 kprintf 设施,可通过 KPRINTF_LOG 环境变量重定向到文件。
该工具链还可通过将 CC 和 CXX 导出到 cosmo 编译器,并运行 configure、make 和 make install,来构建基于 autotools 的传统开源项目。Cosmopolitan 本身可在支持的平台上从源码构建;Makefile 会自动下载 cosmocc。建议通过 ape/apeinstall.sh 安装系统级 APE Loader,在 Linux 上它会注册到 binfmt_misc 以获得额外性能。构建使用 GNU Make,cosmo.zip 中提供引导 make。由于仓库较大,可构建单个目标,如单个 POSIX 测试或整个测试包。构建模式包括 `m=tiny` 用于生成极小二进制(小至 12kb),以及 `m=tinylinux` 用于裁剪其他操作系统并更接近 Musl Libc 的行为。
调试指南涵盖 GDB 配置(针对 UTF-8 字符集和布局)、运行 .dbg 文件以及独立加载调试符号。平台说明涉及 shell(推荐 zsh 5.9+,并提供旧 shell 和 Python 子进程的变通方案)、将 MZ 可执行文件错误路由到 WINE 或打印运行检测器错误的 Linux 系统,以及 WSL(建议禁用 WSLInterop binfmt_misc)。项目列出了最低支持的平台版本,包括 AMD K8、Intel Core、Linux 2.6.18、Windows 8(社区 vista 分支支持旧版 Windows)、Darwin 23.1.0+、OpenBSD 7.3、FreeBSD 13 和 NetBSD 9.2。开发讨论在 Discord 服务器上进行,资金通过 GitHub Sponsors 和 Patreon 提供。
评论
0 评分人数达到10人后显示
登录后参与讨论。