很久以前写过一篇《Windows下用TCC编译Lua源码》,现在Lua已经更新到Lua 5.3.2了,想编译一个玩玩,但是发现之前的脚本是把源文件hard code进去的,对于最新版的没法用,于是改进了一下脚本。
文章关键字 ‘TCC’
用Tiny C Compiler编译Lua
2015年11月29日,星期日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,很小很强大
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)
编译出来的程序的大小几乎可以和汇编语言写的相媲美,实乃编译病毒代码的最佳选择。很小很强大,不是么?