硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2889|回复: 4
收起左侧

[有问必答] 谁知道keil .c 和.h 文件的大概的编译过程

[复制链接]

100

主题

299

回帖

599

积分

金牌会员

123

积分
599
发表于 2018-8-16 17:02:39 | 显示全部楼层 |阅读模式
谁知道keil   .c 和.h    文件的大概的编译过程,我们都知道一个模块的函数调用另一个模块的函数,是调用他的.h文件 ,那么这么推断的话,keil应该是把所有的.h文件全都编译了,然后再去编译.c文件,这么想对吗?
回复

使用道具 举报

3

主题

24

回帖

33

积分

新手上路

积分
33
发表于 2018-8-16 19:50:46 | 显示全部楼层
本帖最后由 confidentlin 于 2018-8-16 19:53 编辑

编译器编译的是.c文件,不是.h文件,调用的.h文件是在编译的预处理阶段将#include的.h文件展开到源代码文件中,接着进行语言分析、汇编阶段;编译阶段完成后每个.c文件会生成一个对应的目标文件.o,要生成最终的可执行文件还需要链接器将.o文件和一些库文件链接起来才是最终的可执行文件。
回复

使用道具 举报

100

主题

299

回帖

599

积分

金牌会员

123

积分
599
 楼主| 发表于 2018-8-17 08:19:12 | 显示全部楼层
confidentlin 发表于 2018-8-16 19:50
编译器编译的是.c文件,不是.h文件,调用的.h文件是在编译的预处理阶段将#include的.h文件展开到源代码文件 ...

非常有道理,有没有相关的资料学习一下,我想知道。o是怎么生成的
回复

使用道具 举报

3

主题

24

回帖

33

积分

新手上路

积分
33
发表于 2018-8-17 08:40:49 | 显示全部楼层
ssssssss 发表于 2018-8-17 08:19
非常有道理,有没有相关的资料学习一下,我想知道。o是怎么生成的

你可以看一下《C and C++ compiling》中文版叫《高级C/C++编译技术 》这本书,写的挺好
回复

使用道具 举报

100

主题

299

回帖

599

积分

金牌会员

123

积分
599
 楼主| 发表于 2018-8-17 09:06:26 | 显示全部楼层
confidentlin 发表于 2018-8-17 08:40
你可以看一下《C and C++ compiling》中文版叫《高级C/C++编译技术 》这本书,写的挺好

https://www.cnblogs.com/xionghj/p/4319463.html  

刚找到这个
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-13 07:33 , Processed in 0.245782 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表