1.下载和编译

repo.or.cz/tinycc.git下载最新的snapshot压缩包,

或者用git命令下载: git clone git://repo.or.cz/tinycc.git 。

Linux下在路径下输入: ./configure && make && make install 。

Windows下先进入win32目录,使用vs2015或使用build-tcc.bat结合GCC[推荐环境为MSYS2]。

编译完成后的得到tcc的可执行文件。Windows下为tcc.exe以及辅助工具tiny_impdef.exe和tiny_libmaker.exe。

注:对于Windows,如果需要排除多余的.dll依赖,先要修改build-tcc.bat ,然后用tcc再编译一遍自己。

  最简单方法: tcc -DONE_SOURCE -DTCC_TARGET_PE tcc.c 。

  对于VS2017写了一个run.bat,可以改成其他版本:

git.exe clone http://repo.or.cz/tinycc.git
@call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"
@mkdir tcc
@cd tinycc\win32
@call build-tcc.bat -c cl -t 32 -i ..\..\tcc
@cd ..
@pause
@cls
..\tcc\tcc.exe -DONE_SOURCE -DTCC_TARGET_PE -run tcc.c

  你甚至可以进行编译器的自举: ..\tcc\tcc.exe -DONE_SOURCE -DTCC_TARGET_PE -run tcc.c -DONE_SOURCE -DTCC_TARGET_PE -run tcc.c

2.TCC配置

tcc最吸引人的特点是把C语言当脚本运行,即 tcc -run filename.c 。

HelloWorld.c的例子:

 #include <stdlib.h>
#include <stdio.h> int main()
{
printf("Hello World\n");
return ;
}

2.1命令行测试:

$ tcc -run HelloWorld.c
Hello World

2.2Notepad++配置

先将tcc.exe所在路径加入环境变量PATH。然后打开Notepad++,运行[F5],输入:

cmd /c cd /d $(CURRENT_DIRECTORY) & tcc -run $(FILE_NAME) & pause

保存为TccRun命令,同时可以设置快捷键,如图所示:

选择运行->TccRun,执行HelloWorld.c。

Hello World
请按任意键继续. . .

2.3 其他编辑器配置

Sublime Text配置:Tools->New Build System。

SciTE配置:修改cpp.properties中的go命令为:

command.go.*.c=tcc -run ./$(FileNameExt)

Vim配置:修改~/.vimrc,加入语句。

"--------------------------------------"
func CodeRun()
exec "w"
if &filetype=="c"
exec "!clear&&tcc -run %"
elseif &filetype=="cpp"
exec "!clear&&g++ -o %< && ./%<"
elseif &filetype=="java"
exec "!clear&&javac % && java %<"
elseif &filetype=="python"
exec "!clear&&python %"
endif
endfunc
"--------------------------------------"
map <F5> <ESC> :call CodeRun()<CR>
imap <F5> <ESC> :call CodeRun()<CR>
vmap <F5> <ESC> :call CodeRun()<CR>

Visual Studio配置:新建Visual Studio空白解决方案进行配置。

Tcc学习笔记(二) 安装和配置的更多相关文章

  1. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  2. Vue学习笔记-VSCode安装与配置

    一  使用环境: windows 7 64位操作系统 二  VSCode安装与配置  1.下载: https://code.visualstudio.com 直接点击即可. 2. 点击按装程序,默认安 ...

  3. MongoDB学习笔记——数据库安装及配置

    MongoDB数据库安装 MongoDB官方下载地址:https://www.mongodb.com/download-center 首先需要根据Windows版本选择正确的MongoDB版本进行安装 ...

  4. .NET之RabbitMQ学习笔记(二)-安装

    安装 1.安装erlang语言环境 因为rabbitmq是基于erlang进行开发,所以需要安装相应的依赖环境,学习中用到的erlang包下载地址:http://www.erlang.org/down ...

  5. PostgreSQL学习笔记(二)-安装pgAdmin

    继上篇安装PostgreSQL后,我们需要安装一个PostgreSQL的图形化管理工具. pgadmin管理工具 创建Python的虚拟环境 cd /root/venv python -m venv ...

  6. Spring4学习笔记二:Bean配置与注入相关

    一:Bean的配置形式 基于XML配置:在src目录下创建 applicationContext.xml  文件,在其中进行配置. 基于注解配置:在创建bean类时,通过注解来注入内容.(这个不好,因 ...

  7. cakephp2.7的学习笔记1 —— 安装与配置

    CakePHP2.7的安装 下载 https://github.com/cakephp/cakephp/releases 解压后扔进你的www目录就可以直接访问 按照提示,修改这两项配置,替换成你喜欢 ...

  8. rabbitmq学习笔记1 安装和配置

    环境 OS: CentOS Linux release 7.1.1503 (Core) kernel:3.10.0-229.el7.x86_64   安装 参考:http://www.rabbitmq ...

  9. kvm虚拟化学习笔记(二)之linux kvm虚拟机安装

    KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...

  10. python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法

    python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...

随机推荐

  1. git上传到阿里云code

    一.在阿里云code(kelude)注册用户,新建项目.二.安装Git后使用GitBash生产ssh key:(https://zhidao.baidu.com/question/1303468264 ...

  2. Manually enable Appear Offline in Lync 2013 Preview via Registry

    refer to http://www.shudnow.net/2012/09/18/manually-enable-appear-offline-in-lync-2013-preview-via-r ...

  3. LRU implement Data Structure analysis

    三种数据结构实现的LRU对比分析: 自适应循环链表, 跳表 和 伸展树 对比发现 : 跳表比其他两个会好一些(命中率) 来自论文 Performance Analysis of LRU

  4. pthon在Notepad++中执行方式

    使用 Notepad++ 编辑运行 Python 程序         Notepad++是一个开源的文本编辑器,功能强大而且使用方便.编辑和调试 Python 程序使用什么编辑器或者 IDE不同人有 ...

  5. LoadRunner测试结果分析02 转载至zhangzhe的新浪博客

    LoadRunner测试结果分析之我见 上述测试过程的重点在于事务,而LoadRunner生成的测试结果图并不局限于事务上,其中还有是关于Vusers.Errors.Web Resources.Web ...

  6. java时间类简单总结

    java时间类(Data类) 1.Data类(没有考虑到国际化,好多方法已过时java.util.Data包中) 父类(是类不是接口含有直接子类3个):  日期格式为:年月日时分秒(不包含毫秒部分) ...

  7. Java集合类简单总结(重学)

    java集合类简介(重学) 一.Collection(集合).Map接口两者应该是平行关系吧. 1.Map介绍 Map是以键值(key-value)对来存放的,2个值.通过key来找到value(例: ...

  8. SQLyog-直接导出JSON格式的数据

          前言:以前做过的一个项目,有这样的一个需求使用搜索引擎来查询对应的区域信息,不过区域信息要先导出来,并且数据格式是JSON格式的,在程序中能实现这个需求,不过下面的这种方法更加的简单,通过 ...

  9. (Hibernate进阶)Hibernate映射——一对一双向关联映射(六)

    上一篇博客我们介绍了一对一的单向关联映射,单向是指只能从人(Person)这端加载身份证端(IdCard),但是反过来,不能从身份证端加载人得信息.如图所示: 关键原因在于对象模型具有方向性: 单向: ...

  10. linux系统limit知识

    1.limit限制每个shell进程和它的子进程对资源的占用.每个登录,还是每个进程? 比如ulimit -n 10240 可以临时改变当前session的shell进程的文件句柄数限制,退出当前窗口 ...