tcc的短小精悍,编译速度快,以及独特的直接运行c代码功能,让tcc成为一个出色的编译器,横跨linux,windows平台。

笔者目前尚处于学习c(ANSI c/ISO c)阶段,为了加强手写代码的能力,于是就有了这篇编译器使用技巧。

在此累赘一句:

手写并编译链接代码,对于大多数人来说这是不可以想象的,笔者使用vc,万不得已的情况下才用vs,这对很多人来说也难以想象,

这么做是为了能期望能够编译出短小精悍或者操作系统无依赖的c代码,不依赖高版本的c运行时,例如vcruntime7,8,9或者更高版本。

也是期望自己能在恶劣环境下编写出一些代码。

把以下批处理保存成tcc.bat保存在tcc安装目录的根目录,例如笔者安装在d:\develop\tcc目录,以下代码就保存到d:\develop\tcc,最终文件绝对路径

d:\develop\tcc\tcc.bat

@echo off
echo ----------------------编译信息开始----------------------
tcc.exe %1 -vv -bench
echo ----------------------预处理开始------------------------
tcc.exe %1 -E
echo ----------------------预处理结束------------------------
echo ----------------------编译信息结束----------------------
echo 编译后生成程序所在目录%~dp1
echo 程序运行结果如下:
echo --------------------------------------------------------
%~n1
echo --------------------------------------------------------

然后把它添加到系统环境变量PATH中

方法:右键"我的电脑"-->"属性",系统变量,找到PATH变量,点击"编辑",按下HOME键,导航到行首,输入D:\develop\tcc;

以下是测试代码以及使用效果图

//print.h
#define PR printf
#define NL "\n"
#define D "%d"
#define D1 D NL
#define D2 D D NL
#define D3 D D NL
//file1.c
#include "print.h" main()
{
int a = , b = , c = ;
PR(D1,a);
PR(D2,a,b);
PR(D3,a,b,c);
}

设置随处都可以调用tcc的编译环境的更多相关文章

  1. 配置指定使用tcc编译器编译nim程序

    1.前言 nim是什么? nim是一门静态编译型语言,语法类似python,nim的代码被翻译成C代码再被C编译器编译成可执行文件.因此nim的可执行文件比较小,性能应该也不错. 最简单的nim程序就 ...

  2. 如何在Windows命令行(DOS界面)中调用 编译器 来编译C/C++源程序

    首先说明一下背景: 为什么要在DOS界面编译C/C++源程序?有很多现成的开发环境(IDE)如:vs, vc++等,这些开发环境集成了编译,调试,使用起来很方便,而且图形化操作界面,简洁明了.但是在开 ...

  3. Mac下设置Android源代码编译环境

    在Mac下编译Android最麻烦的就是设置Android的编译环境了,做完这一步基本上剩下的就是近乎傻瓜式的操作了.说起来也简单就三步,设置大小写敏感的文件系统.安装编译工具.设置文件系统同时能打开 ...

  4. WebStorm ES6 语法支持设置和ES6语法的JS文件编译为ES5语法文件

    ECMAScript 6是JavaScript语言的下一代标准,已经在2015年6月正式发布了.Mozilla公司将在这个标准的基础上,推出JavaScript 2.0.ES6的目标,是使得JavaS ...

  5. msvc交叉编译:使用vcvarsall.bat设置命令行编译环境

    一直以来我只知道vc设置命令行编译环境的批处理命令是%VS140COMNTOOLS%/Common7/Tools下的vsvars32.bat,(%VS140COMNTOOLS%为定义vs2015公共工 ...

  6. CMake学习- 使用批处理设置编译环境

    批处理-.bat cd /d "%~dp0" mkdir build mkdir install cd build ..\cmake37\bin\cmake.exe -D WIN3 ...

  7. 使用SetLocaleInfo设置时间后必须调用广播WM_SETTINGCHANGE,通知其他程序格式已经更改

    uses messages; Procedure SetDateFormat; //设置系统日期格式var buf:pchar; i:integer; p:DWORD;begin getmem(buf ...

  8. MyEclipse中JDK运行环境和编译环境的设置

    一.设置myEclipse中新项目使用的JDK 1.运行环境   [Window]->[Preferences]->[Java]->[Installed JREs] 步骤:Add-- ...

  9. Sublime Text3:插件+快捷键+环境变量设置+C/C++编译环境

    环境变量配置 如果电脑里之前下载过Codeblocks或者Dev,找到文件根目录,打开MinGw(或者MinGw64),点开bin目录,将bin文件夹的目录复制下来(以Codeblocks为例,将文件 ...

随机推荐

  1. [轉]Android Libraries 介紹 - Butter knife

    原文地址 Butter Knife 簡介 Butter Knife - Field and method binding for Android views.助你簡化程式碼,方便閱讀. 使用方法 開發 ...

  2. 【linux】三十分钟学会AWK

    本文大部分内容翻译自我开始学习AWK时看到的一篇英文文章 AWK Tutorial ,觉得对AWK入门非常有帮助,所以对其进行了粗略的翻译,并对其中部分内容进行了删减或者补充,希望能为对AWK感兴趣的 ...

  3. [Linux] VirtualBox - 主机与虚拟机互通 - CentOS

    使用VirtualBox的主机与虚拟机相互通信方法: (使用VirtualBox不要使用绿色版的,因为绿色版的没有安装虚拟网卡驱动,所以主机与虚拟机是不能相互通信的,切记) 1.设置已经安装好的操作系 ...

  4. 【python】*与** 参数问题

    可变参数 在Python函数中,还可以定义可变参数.顾名思义,可变参数就是传入的参数个数是可变的,可以是1个.2个到任意个,还可以是0个. 我们以数学题为例子,给定一组数字a,b,c……,请计算a2 ...

  5. Python Mysql 篇

    Python 操作 Mysql 模块的安装 linux: yum install MySQL-python window: http://files.cnblogs.com/files/wupeiqi ...

  6. c# Wndproc的使用方法

    protected override void WndProc(ref Message m) { const int WM_SYSCOMMAND = 0x0112; const int SC_CLOS ...

  7. mysql登录基本语句

    默认密码:root mysql 显示所有的数据库,代码如下: mysql> show databases; mysql> show tables; MySQL显示命令二.显示命令 1.显示 ...

  8. sql server中的 SET NOCOUNT ON 的含义

    每次我们在使用查询分析器调试SQL语句的时候,通常会看到一些信息,提醒我们当前有多少个行受到了影响,这是些什么信息?在我们调用的时候这些信息有用吗?是否可以关闭呢? 答案是这些信息在我们的客户端的应用 ...

  9. 50. Remove Duplicates from Sorted Array && Remove Duplicates from Sorted Array II && Remove Element

    Remove Duplicates from Sorted Array Given a sorted array, remove the duplicates in place such that e ...

  10. inline-block和block的区别

    <html> <head> <style> body,ul,li,span{padding:0px;margin:0px;} </style> < ...