zoukankan      html  css  js  c++  java
  • 设置随处都可以调用tcc的编译环境

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

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

    在此累赘一句:

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

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

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

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

    d:develop cc cc.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 cc;

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

    //print.h
    #define PR printf
    #define NL "
    "
    #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 = 1, b = 2, c = 3;
        PR(D1,a);
        PR(D2,a,b);
        PR(D3,a,b,c);
    }

  • 相关阅读:
    一个人是否靠谱,闭环很重要(深度)
    远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)
    如何量化考核技术人的 KPI?
    ECharts
    Spring IO Platform介绍
    百亿级日访问量的应用如何做缓存架构设计?
    大型分布式系统中的缓存架构
    Delphi实现屏幕截图、窗口截图、指定区域截图
    Delphi窗体重绘API
    GdiPlus 一个给 Delphi 提供的新的 GDI+ 接口很好用!
  • 原文地址:https://www.cnblogs.com/passedbylove/p/4620552.html
Copyright © 2011-2022 走看看