TCC(Tiny C Compiler)介绍

简介:

TCC是一个超小、超快的标准C语言编译器。她可以从这里(http://bellard.org/tcc/)下载到;注意,要下载http://download.savannah.nongnu.org/releases/tinycc/tcc-0.9.25-win32-bin.zip

和notepad2一样,TCC也是免费的!(再一次酷毙了!!!)

下载好之后,解压到自己的某个文件夹里面:

image 我们所需的编译系统,就都在tcc这个文件夹里面。

TCC的使用方法是这样的:http://bellard.org/tcc/tcc-doc.html 英文的?当然,早就告诉你要好好学英语了。

举个例子说明TCC的用法:

首先我已经有了一个.c的源文件。

image

用Notepad2写好源代码,保存好:

image

 

接下来,使用TCC检验我们的程序是否设计正确。

首先我们要把TCC的目录添加到系统的path环境变量中去。(不知道啥叫环境变量的,请自己google一下。)具体做法如下:

右键单击“我的电脑”==》“属性”==》“高级”==》“环境变量”==》(双击系统变量中的)“path”

image image

image 在最后添加上形如  ;d:\temp\tcc  用以指明tcc的位置。注意:之前的;是用来分隔各个位置的,千万不能少。接着,一路“确定”,就好了。

接下来,我介绍2种使用TCC的方法。这两种方法其实是一回事儿,但我更喜欢用第二种。

第一种:编译链接源代码,生成可执行文件。

打开命令行提示符:“开始”==》“运行”(输入cmd)==》“确定”

转到.c源代码所在的目录,编译链接源代码:

Microsoft Windows XP [版本 5.1.2600] 
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>cd d:\temp

C:\Documents and Settings\Administrator>d:

D:\temp>

编译链接的命令是:tcc   源代码文件名文件名后面的.c千万不可省略,tcc后面一定要有空格);示例如下

D:\temp>tcc test.c 
test.c:5: missing terminating " character

这种情况,说明在test.c文件的第5行出现了错误,错误的原因是“缺少表示终止的"字符”。于是,我们在notepad2中修正我们的代码,保存,如下:

image

再次回到命令行提示符(那个黑不溜秋的界面下),编译链接:

D:\temp>tcc test.c

D:\temp>

什么动静都没有?没消息,就是好消息!这是电脑世界的行为准则。你看看你的文件夹,里面是不是多了这个:

image

OK,双击这个.exe的可执行文件,看看运行结果吧。哦?屏幕上一闪而过?啥也没看清,咋办?你可以直接在刚才的命令行提示符下面输入test.exe回车来执行这个文件:

D:\temp>test.exe 
Haha 
D:\temp>

你看,搞定了!

=========================

一个很重要的秘诀:在命令行提示符下面,我们往往要重复不断地输入许多同样的命令。每次都去打这些命令,是件很烦人事情。其实大可不必如此的,你只需要打一次命令,下次要重复使用这条命令的时候,你就不必再打字了,只要按键盘上“向上”的箭头方向键……看!刚才的命令是不是出来了?So cool!

=========================

上面就是我介绍的第一种使用TCC的方法。还有第二种用法:

有时候,我并不喜欢让TCC生成.exe的可执行文件,然后再去运行它。我只需要使用

tcc -run 源代码文件名

就可以直接让TCC跳过编译链接的步骤,直接运行我们的程序了(当然,前提是你的代码没有语法错误);如下:

D:\temp>tcc -run test.c 
Haha 
D:\temp>

=========================

评价TCC的优点和缺点:

优点:

  1. 小巧玲珑。塞在U盘里,随时用,随时有,连安装都不用。
  2. 支持最新的C语言国际标准。能在TCC里面跑的程序,在其他的编译环境下都能跑的动。
  3. 快!TCC的运行速度实在是快!

缺点:

  1. 没有断点和单步执行的跟踪系统,面对非常复杂的程序逻辑的时候,不好调试程序的运行时逻辑错误。

小结:TCC实在酷毙了。我很喜欢她!

相关文章
|
Java API Android开发
Gradle 依赖关系中 compile和 implementation的区别
将在一个项目中展示implementation,api以及compile之间的差异。 假设我有一个包含三个Gradle模块的项目: • app(Android应用) • my-android-library(Android库) • my-java-library(Java库) app具有my-android-library与依赖。my-android-library具有my-java-library依赖。
587 0
|
6月前
|
iOS开发
部分库不支持32位系统archive报错:Undefined symbols for architecture armv7
部分库不支持32位系统archive报错:Undefined symbols for architecture armv7
49 0
|
6月前
|
Swift
use_frameworks引起的Undefined symbols for architecture arm64
use_frameworks引起的Undefined symbols for architecture arm64
55 0
|
6月前
|
编译器 Linux C语言
CMake指定交叉编译指南:从编译器设置到验证 (CMake Cross-compilation Guide: From Compiler Setup to Verification)
CMake指定交叉编译指南:从编译器设置到验证 (CMake Cross-compilation Guide: From Compiler Setup to Verification)
1731 1
codeblocks中出现#error This file requires compiler and library support for the错误时的解决方案
codeblocks中出现#error This file requires compiler and library support for the错误时的解决方案
698 0
codeblocks中出现#error This file requires compiler and library support for the错误时的解决方案
编译OpenJDK12:a microsoft compiler is required
编译OpenJDK12:a microsoft compiler is required
79 0
编译OpenJDK8:a microsoft compiler is required
编译OpenJDK8:a microsoft compiler is required
90 0
|
TensorFlow 算法框架/工具 Python
成功解决Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
成功解决Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
成功解决Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
|
Java 开发工具
mac Big Sur系统 mvn打包报错:No compiler is provided in this environment. Perhaps you are running on a JRE
mac Big Sur系统 mvn打包报错:No compiler is provided in this environment. Perhaps you are running on a JRE
1439 0
mac Big Sur系统 mvn打包报错:No compiler is provided in this environment. Perhaps you are running on a JRE
|
开发工具 iOS开发 Perl
Xcode10再坑之framework not found CoreServices for architecture armv7
1、前言 前段时间,升级了 Xcode10 后,提供给第三方用户的SDK,客户反馈说报错: ld: framework not found CoreServices for architecture armv7 为什么 iOS SDK 拖入项目中就报错"ld: framework not fou...
4740 0