C语言综合研究1

搭建一个tcc环境

研究过程:

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

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

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

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

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

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

随即我们使用了诸如 minic\tc c\a.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语言是极其有帮助的,可以让我们抓住一些更为核心的东西,而忽略那些目前阶段不需要了解的东西。

研究C语言的新型编译环境TCC的更多相关文章

  1. C语言课堂--现代编译环境搭建[2020年7月]

    看过了很多专家吐槽目前的大学c语言教学问题多多: 教材难懂,消磨了学生的兴趣: 环境老旧,都2020了还有在用VC6甚至TurboC 2.0,语法不规范. 轮到自己上课,心想可不能再继续这样的c语言课 ...

  2. sublime text2建成C语言(C++)编译环境

    四个步骤: 下载安装Sublime text2 for windows 下载安装 MinGW 与 系统变量设置 Sublime Building System 设置 编译测试 一.下载安装Sublim ...

  3. 【Go】windows下搭建go语言编译环境

    主要是协助杨哥做Kubernetes相关工作,由于Kubernetes和Docker都是由Go语言编写,因此改源码后还是需要go语言编译器来编译运行.所以打算先在windows上安装一下go语言环境. ...

  4. C语言编程入门之--第二章编译环境搭建

    第二章 编译环境搭建 导读:C语言程序如何工作,首先需要编译链接成可执行文件,然后就可以运行在不同的环境中,这个“环境”的意思就是比如说,电脑,手机,路由器,蓝牙音箱等等智能设备中,其中编译器启到了关 ...

  5. C语言编译环境中的 调试功能及常见错误提示

    文章目录 1 .调试功能 2 . 编译中的常见错误例析 3 .常见错误信息语句索引 1 .调试功能 1.常用健 <F10> : 激活系统菜单 <F6> : 将光标在编辑窗口和. ...

  6. 深入研究C语言 第一篇(续)

    没有读过第一篇的读者,可以点击这里,阅读深入研究C语言的第一篇. 问题一:如何打印变量的地址? 我们用取地址符&,可以取到变量的偏移地址,用DS可以取到变量的段地址. 1.全局变量: 我们看到 ...

  7. 深入研究C语言 第一篇

    一. 研究过程 1.第一章:创建编译环境: 我们首先下载TC2.0,找到其中与编译连接相关的程序和文件: (1) 编译器:TCC.exe (2) 连接器:tllike.exe (3) 相关文件:c0s ...

  8. gO语言的安装和环境变量的配置

    一.Go语言下载 go语言官方下载地址:https://golang.org/dl/ 找到适合你系统的版本下载,本人下载的是windows版本.也可以下载Source自己更深层次研究go语言. 二.G ...

  9. 在CentOS上构建.net自动化编译环境

             我们知道在Windows上我们很容易构建于MSBuild的自动化编译环境,那么在CentOS也是可以的,主要是需要Mono. 在这儿我们选择Jenkins+Gitlab+Mono在C ...

随机推荐

  1. mybatis 相关

    一.mybatis转义问题 mybatis中SQL在 mapper.xml 中书写时,如果有  < .>.<=.>=  时会出错,应该使用转义的写法. 写法一  转义 < ...

  2. Django学习---py3下的富文本编辑器的使用

    背景说明: Ueditor HTML编辑器是百度开源的HTML编辑器,但是在Python3下调用报错,找不到widgets模块,经查发现,DjangoUeditor是基于Python 2.7的,对Py ...

  3. PHP APP端微信支付

    前面已经写了手机APP支付宝支付,今天再把手机APP微信支付补上,前期的准备工作在这里就不多说了,可以参考微信支付开发文档,一定要仔细阅读开发文档,可以让你少踩点坑:准备工作完成后就是配置参数,调用统 ...

  4. 5、爬虫之scrapy框架

    一 scrapy框架简介 1 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Sc ...

  5. Tensorflow张量

    张量常规解释 张量(tensor)理论是数学的一个分支学科,在力学中有重要应用.张量这一术语起源于力学,它最初是用来表示弹性介质中各点应力状态的,后来张量理论发展成为力学和物理学的一个有力的数学工具. ...

  6. 有时间研究一下Spark的HashPartitioner和RangePartitioner

    有时间研究一下Spark的HashPartitioner和RangePartitioner有时间研究一下Spark的HashPartitioner和RangePartitioner有时间研究一下Spa ...

  7. 1095 Anigram单词

      基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 一个单词a如果通过交换单词中字母的顺序可以得到另外的单词b,那么定义b是a的Anigram,例如单词 ...

  8. cryptopunks的代码解释

    1.imageHash就是将punk所有图像合在一起的那张图punks.png进行hash得到一个值,并将该值存储到链上,用处就是你可以通过将图像hash然后跟该值对比看图像对不对.这就是它的用处,在 ...

  9. 分布式爬虫之elasticsearch基础1

    一:搜索引擎elasticsearch介绍 Elasticsearch 是一个全文搜索引擎,可以快速地储存.搜索和分析海量数据. 二:应用场景 海量数据分析引擎 站内搜索引擎 数据仓库 三:安装 我们 ...

  10. ;,&,&&,shell,区别

    command1&command2&command3     三个命令同时执行 command1;command2;command3     不管前面命令执行成功没有,后面的命令继续执 ...