zoukankan      html  css  js  c++  java
  • 研究C语言的新型编译环境TCC

    C语言综合研究1

    搭建一个tcc环境

    研究过程:

    问题引出:为什么要使用tcc环境,甚至连图形界面都没有,为什么要使用这样的化境?

    按照我们学习的本质来讲,可能是为了体验C语言底层的相关特性,但是在研究1中尚不能体会这点,所以这个问题待后续回答

    我们将相关文件放到DOS环境下的C盘中去,用记事本书写一个简单的c程序。

    使用c:c cc a.c命令打算对.c文件进行编译。

    发现,提示错误:不能找到a.c文件。

    那么应该是无法识别路径,或者是相关的问题?那么推测是,难道tcc  环境在工作的时候需要一个索引路径的文件支持?

    随即我们使用了诸如 minic c ca.c.发现可以找到a,c文件并打开它,于是得出结论,路径问题并不由tcc来决定,而是由操作系统DOS决定。虽然考虑到这一点,但是仍不知道怎么做,于是百度

    最终知道应该 用 cd c命令使目录更改为C:C>

    这样顺利的编译连接生成a.exe文件。

    但是仍不知道这样做的原因是是什么 为什么tc的时候就没有这个问题。

    之后处于好奇心,将tlink.exe删除,发现只能能够生成.obj文件,但是不能生成.exe文件,如果不删除tlink.exe发现可以直接生成.exe文件,这说明了tcc.exe程序有调用tlink.exe程序的作用,而其本身能够实现编译功能。

    又做了如下尝试,算是对之前研究的回忆,在tlink.exe删除后,删除了其他必要文件,发现仍让能够生成.obj文件,说明这些文件在编译阶段不是必须的,而这个再次说明了什么是:连接!

    做完这些工作,运行生成的.exe文件,显示了“hello world!”。

    已解决:

    1.通过这个研究做到了最基本的事情,搭建一个tcc环境并对.c文件进行编译连接生成.exe文件。

    2.认识到了tcc负责生成.obj文件,tlink负责生成.exe文件,但tcc会调用tlink 文件。

    3.对之前的研究进行回顾,进一步认识了“编译”,“连接”这个概念

    未解决:

    1.tcc甚至连图形界面都没有,我们为什么使用tcc?

    2.教材所说的有两个最大64K的段,试问如何验证?以及,这个是什么意思?

    感悟:

    通过建立tcc环境,实现了对.c文件的编译连接,总体来说tcc比tc少了很多文件,这对于我们研究c语言是极其有帮助的,可以让我们抓住一些更为核心的东西,而忽略那些目前阶段不需要了解的东西。

  • 相关阅读:
    Windows SDK编程(Delphi版) 之 应用基础,楔子
    一个小问题引发的论证思考
    Delphi 组件开发教程指南(7)继续模拟动画显示控件
    用PyInstaller将python转成可执行文件exe笔记
    使用 .Net Memory Profiler 诊断 .NET 应用内存泄漏(方法与实践)
    Microsof Office SharePoint 2007 工作流开发环境搭建
    How to monitor Web server performance by using counter logs in System Monitor in IIS
    LINQ之Order By
    window 性能监视器
    内存泄露检测工具
  • 原文地址:https://www.cnblogs.com/shaonianpi/p/8012986.html
Copyright © 2011-2022 走看看