项目简介
Swirl是一款小巧、快速、功能强大且安全的C语言编译器。它能在多种系统上编译和执行C代码,支持直接编译和执行C源文件,无需链接或汇编,还支持C脚本。此外,Swirl朝着完全符合ISOC99标准的方向发展,并且可以自编译。
项目的主要特性和功能
- 小巧:能在各种环境(如救援磁盘)下编译和执行C代码。
- 快速:生成优化的x86代码,无字节码开销,编译、汇编和链接速度比gcc -O0快约7倍。
- 功能不限:可直接使用任何C动态库,朝着完全符合ISOC99标准发展,且能自编译。
- 安全:包含可选的内存和边界检查器,边界检查代码可与标准代码自由混合。
- 直接编译执行:可直接编译和执行C源文件,无需链接或汇编,包含完整的C预处理器。
- 支持C脚本:在C源文件首行添加#!/usr/local/bin/swirl -run,即可像shell或perl脚本一样直接执行。
安装使用步骤
安装
在i386/x86_64/arm/aarch64/riscv64的Linux/macOS/FreeBSD/NetBSD/OpenBSD主机上安装:
bash
./configure
make
make test
make install
注意:对于FreeBSD、NetBSD和OpenBSD,应使用gmake代替make;对于Windows,请阅读swirl-win32.txt。编译文档需要安装makeinfo。默认情况下,Swirl安装在/usr/local/bin。使用./configure --help查看配置选项。
使用
假设你已了解ANSI C。可查看示例文件ex1.c了解程序的样子。若需要小型基本libc支持,可使用头文件<swirllib.h>,当然也可使用标准头文件,只是编译速度较慢。
- C脚本使用:在C源文件首行添加#!/usr/local/bin/swirl -run,并设置可执行权限(chmod a+x your_script),即可像shell或perl脚本一样启动C代码,命令行参数会像ANSI C一样传递给主函数的argc和argv。
- 示例运行:
  - ex1.c:最简单的示例(Hello World),也可直接作为脚本运行:./ex1.c。
  - ex2.c:更复杂的示例,根据给定数字列表通过四则运算查找数字(基准测试)。
  - ex3.c:计算斐波那契数列(基准测试)。
  - ex4.c:更复杂的X11程序,实际上是非常复杂的测试,因为使用了标准头文件,也可直接作为脚本运行:./ex4.c。
  - ex5.c:使用标准glibc头文件的Hello World示例。
  - swirl.c:Swirl可自编译,用于检查代码生成器。
  - swirltest.c:Swirl的自动测试文件,在执行make test时使用,用于测试许多可能的细微错误。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】