c语言的编译原理

我们平时写的c代码,就是以.c为后缀的文件,就叫源文件,要经过编译链接之后才能成为可执行的exe文件。我们来看看是怎么进行的呢。
在这里插入图片描述

笔者用的两款IDE,一个叫Dev C++,一个是vs2015,我们来看看他们是怎么实现编译链接的。
Dev C++:在这里插入图片描述
这个IDE用的编译器是GCC,ok,我们来看一下他的安装路径,在这里插入图片描述
可以看到在这个目录里有gcc的exe程序,Dev C++就是通过这个东西来编译的。我们可以配置一下环境变量,直接通过gcc命令来编译我们的源文件。在这里插入图片描述
之所以要配置环境变量,是因为我们当我们配置了环境变量后,就可以在cmd中直接使用这个目录下的程序了,环境变量的作用就是当在cmd中输入一些命令后,先去你的这个目录中寻找。
接下来,我们创建一个源文件,在其位置按住shift右击,打开powershell窗口,这样我们就不用切换位置了;然后输入gcc x.c在这里插入图片描述
会发现在这个目录里生成了一个exe文件,输入路径就可以运行了在这里插入图片描述
其实这个IDE在生成exe的过程中还有一个过程,他会先将源文件编译成目标文件(以.obj结尾的文件),在经过链接从而生成exe文件,只不过它在这个过程中把obj文件删除了。gcc这个命令包含了编译和链接。

来看看vs:vs用的编译器叫cl,如图在这里插入图片描述
我们也可以像上面一样配置环境变量,但是vs这个强大的IDE为我们提供了强大的手动编译的工具,不需要我们在配置了
在这里插入图片描述
我们先把位置调到我们要测试的地方
在这里插入图片描述
输入cl x.c
在这里插入图片描述
在这里插入图片描述
这个命令包含了编译和链接,我们也可以分开来进行。
先用cl /c a.c
在这里插入图片描述
在这里插入图片描述
再用link 在这里插入图片描述
在这里插入图片描述
vs的底层也是先编译在链接的。
但这两个工具的编译器是不一样的。
下面我们在来说个事,我们知道在源文件中会有预处理文件,那这个东西到底是怎么用的呢,下面我们来干一件事,一切就明了了。
在这里插入图片描述
右击stdio.h打开文档,把里面的代码copy到#include<stdio.h>的位置上
在这里插入图片描述
运行,你会发现和没替换之前是一样的。

ok,我们来总结一下,在我们点击开始执行时,编译器首先会先把你的预处理用他的.h文件替换,然后开始编译了,生成一个obj的文件,这个东西就是计算机可以看懂的文件了,之后在将这个obj文件和其他一些文件链接起来,比如启动文件(不同的系统启动文件不一样),依赖的一些库文件等,生成可执行文件.exe

以上是笔者经实践得出个结论,如果有什么错误请指出来,感激不尽!!!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值