族谱网 头条 人物百科

Tiny C Compiler

2017-10-16
出处:族谱网
作者:阿族小谱
浏览:474
转发:0
评论:0
更新项目支持C99VLA规范可产生make的dependencies(-MD/-MF)支持多种平台的程序编写,例:x86-64、ARM、OSX、WinCE、kFreeBSD、Hurd修正一些已知的bug特色功能TCC与其他C语言编译器的不同处在于:容量小,软件大小约为1MB左右,可存储于1.44MB的磁盘片中使用。速度快,以TCC开发的程序可运行于x86(16/32位)与x86-64(64位)环境中,据开发者说,运行比GCC较来得相当快速。程序亦可以包含汇编语言(inlineassembler)于其中运行与编译。无限制,其他C语言的动态Library祗要匹配ISOC99规范,皆可以给予TCC来使用与编译。安全性,TCC包含一个可选的memory(内存)和boundschecker(程序检测器),经过检测的代码可以随意地混合于标准代码内。其他,TCC为命令行式的使用,目前并无集成性开发环境,...

更新项目

支持C99 VLA规范

可产生make的dependencies(-MD/-MF)

支持多种平台的程序编写,例:x86-64、ARM、OSX、WinCE、kFreeBSD、Hurd

修正一些已知的bug

特色功能

TCC与其他C语言编译器的不同处在于:

容量小,软件大小约为1MB左右,可存储于1.44MB的磁盘片中使用。

速度快,以TCC开发的程序可运行于x86(16/32位)与 x86-64(64位)环境中,据开发者说,运行比GCC较来得相当快速。程序亦可以包含汇编语言(inline assembler)于其中运行与编译。

无限制,其他C语言的动态Library祗要匹配ISO C99规范,皆可以给予TCC来使用与编译。

安全性,TCC包含一个可选的memory(内存)和boundschecker(程序检测器),经过检测的代码可以随意地混合于标准代码内。

其他,TCC为命令行式的使用,目前并无集成性开发环境,但可以配合其他的编辑软件使用(如:UltraEdit...等)。

编译效率

建议参考开发者文件说明Compilation Speed。

使用信息

程序安装

Windows环境安装,设置与测试

将win32压缩文件0.9.26-win32位版本解压缩于任意目录下皆可以(其他版本0.9.26-win64位版本,0.9.26 Linux版本与源代码档),这里是示范于windows系统C磁盘下示例

设置系统环境参数,新增

增加路径

测试:打开命令提示字符(Command Prompt) 于任一目录下输入TCC -version,即显示如下

往后即可于任一目录下编译C语言代码

使用方式

可以相同于一般的命令行C语言软件的使用方式

编译方式

于Windows下编译

或是

提示:以"-run"方式来编译程序,编译结果祗会存放于记忆中而己,运行完毕后即释放,而不会产生对应的可执行文件(即EXE)。

于Linux/Unix Like下编译

或是

同前述"-run"的提示。

指令查询

可于DOS/Windows命令提示字符下,或是于Linux/Unix Like下键入

C:\>TCC 或是[folder name]$ TCC  

文件大小

网络上Demon"s Blog亦有测试信息,以Borland C Compilder 5.5(BCC, Commandline, Freeware),Visual C++ 6.0与Tiny C Compiler来比较编译后的文件大小。

测试编译代码为:

#includeintmain(intargc,char*argv[]){printf("Hello, world\n");return0;}

存成文件"hellow.c",接着编译程序

若没有其他信息,则是编译完成,接着运行程序

或是于编译(32位)时增加参数,有多的信息可以参考如下:

32位编译时信息如下:

64位编译时信息如下:

以有错误的代码测试如下:

#includeintmain(intargc,char*argv[]){printf("Hello, world\n);}

测试编译时,结果如下:

如使用内存内编译(32位)方式时,方法与结果如下:

另外使用内存内编译(64位)方式时,方法与结果如下:

编译结果为:

用Borland C Compiler 5.5编译结果为51.0 KB(52,224 bytes)

用Visual C++ 6.0编译结果为40.0 KB(40,960 bytes)

用TCC 0.9.26编译结果为1.50 KB(1,536 bytes)

使用汇编语言

TinyCC即集成了Assembly于其中,使用TinyCC assembler的语法兼容于GNUassembler即可,但是使用时仍是有限制条件如下:

必须是C或C++的指令有支持

由于指针符号相同于C,所以无法使用符号有"."或"$"

支持32位为主

必须为inline assembler内嵌汇编语言使用

相关支持的汇编语言语法如下列所示:

注意事项

为方便编译,要将TCC源代码内的libtcc.h于置于include内。

开发历史

TCC是由Obfuscated Tiny C Compiler(OTCC)即小型混淆器用途发展而来,程序由Bellard于2001年编写来为参加国际C语言混乱代码大赛(IOCCC)比赛。其后,Bellard即延伸发展其小型混淆器的程序,而成为最终的TCC。


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

文章来源:内容词条
——— 没有了 ———
编辑:阿族小谱

更多文章

更多精彩文章
评论 {{commentTotal}} 文明上网理性发言,请遵守《新闻评论服务协议》
游客
发表评论
  • {{item.userName}} 举报

    {{item.content}}

    {{item.time}} {{item.replyListShow ? '收起' : '展开'}}评论 {{curReplyId == item.id ? '取消回复' : '回复'}}

    回复评论
加载更多评论
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回
打赏
私信

推荐阅读

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信