头文件与makefile

头文件应该写什么:
问题:头文件可能被任何的源文件包含,意味着头文件的内容会在多个目标文件中存在,合并时不能冲突
重点:头文件中只能编写声明语句,不能有定义语句
全局变量声明
函数声明
宏常量
宏函数
typedef 类型重定义
结构、联合、枚举

gcc -c main.c 变成main.o
gcc a.o main.o 连接后./a.out
头文件的编写规则:
1、为每个.c文件写一份.h文件,.h文件是对.c文件的说明
2、如果需要用到某个.c文件的变量、函数、宏,只需要把它的头文件导入
3、.c文件也需要导入自己.h文件,目的是为了让声明与定义一致

头文件的相互包含:
假如a.h中包含了b.h的内容,而b.h又需要包含a.h的内容,这种会导致编译出错

解决方案:把a.h中需要的内容,和a.h中需要的内容提取出来,写成一个c.h

错误: 未知的类型名‘XXXX’ 一般都是因为头文件相互包含所导致的,也可能因为复制粘贴时头文件宏名忘记改
Makefile 是由一系列编译指令组成的可执行文件,也叫做编译脚本
在终端执行make命令会自动执行Makefile脚本中的编译指令,它可以根据文件的最后修改时间,来判断哪些文件需要被编译,哪些文件不需要被编译,从而大大地提高编译效率

编译规则:
1、 如果该项目没有编译过,则编译全部的.c文件,并链接成可执行文件
2、 如果某些.c文件被修改,则只编译修改过的.c文件,并重新链接新的可执行文件
3、 如果某些.h文件被修改,所有依赖它的.c都要重新编译并链接

一个最简单的Makefile脚本:
执行目标:依赖
编译指令
被依赖的目标1:依赖的文件
编译指令
被依赖的目标2:依赖的文件
编译指令
。。。
负责清理的执行目标:
rm…

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值