项目简介
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】