文章关键字 ‘TCC’

用Tiny C Compiler编译Lua

2015年11月29日,星期日

很久以前写过一篇《Windows下用TCC编译Lua源码》,现在Lua已经更新到Lua 5.3.2了,想编译一个玩玩,但是发现之前的脚本是把源文件hard code进去的,对于最新版的没法用,于是改进了一下脚本。

(更多…)

Windows下用TCC编译PCRE源码

2012年06月3日,星期日

PCRE(Perl Compatible Regular Expressions)是Perl兼容的C语言正则表达式库,PCRE的核心只使用了C标准库函数,理论上可以用任何符合ANSI C标准的编译器编译,所以TCC编译PCRE源码是可行的。

(更多…)

Windows下用TCC编译Lua源码

2012年06月2日,星期六

心血来潮研究了一下怎么用TCC源码编译Lua。

(更多…)

TCC,很小很强大

2010年11月28日,星期日

一直喜欢用很小很强大的软件,如uTorrent、EditPlus、WinRAR、UltraISO、VbsEdit等等,TCC也是其中的一员。

说起TCC就不得不提到TC,因为它们的缩写很像。TC是Turbo C的缩写,是Borland公司开发的DOS环境下的C语言集成开发环境,Borland公司的传奇就是从TC开始的。DOS时代已成为过去,Borland传奇也已成为历史,但是国内仍然有很多C语言教材里用TC作为编译器,谭浩强的烂书《C语言程序设计》就是其中的一本。

TCC是Tiny C Compiler的缩写,传说是目前最小的ANSI C语言编译器,支持Windows和Linux平台。Windows下的TCC解压后文件夹仅932KB,连1000KB都不到。Ubuntu系统可以通过apt-get install tcc命令来安装。你可以使用这个不到1000K的编译器编译你的C源码,它支持C的预处理,编译,机器码汇编和链接。编译速度也超过了GCC,而且它支持ISO C99标准,并且还包括了一些内存和数组边界的检查。它甚至还可以编译Linux的内核。

不仅TCC本身很小,而且TCC编译出来的程序也很小。用一个简单的Hello world程序就可以比较出来:

#include <stdio.h>
int main()
{
    printf("Hello, world\n");
    return 0;
}
  • 用BCC 5.5编译得到的程序是51.0 KB (52,224 bytes)
  • 用VC 6.0编译得到的程序是40.0 KB (40,960 bytes)
  • 用TCC 0.9.25编译得到的程序是1.50 KB (1,536 bytes)

编译出来的程序的大小几乎可以和汇编语言写的相媲美,实乃编译病毒代码的最佳选择。很小很强大,不是么?