预编译头文件:*.h.gch文件
2016-05-07 21:15
232 查看
预编译头文件,就是将头文件事先编译成一种二进制的中间文件。比如下面代码:
其中,由于 a.h 被当成 *.c 文件一样进行编译,生成了一种二进制中间格式的文件(a.h.gch)。
a.h 文件 和 a.c 文件分别被解析,合并,并通过编译生成了 a.o 文件。虽然 a.o 文件中包含了很少的头文件代码,头文件的大小并没有对 a.o 文件的规模产生很大影响,但是对头文件的解析话费的时间,却不容小觑。如果生成 *.gch 文件,再次包含该头文件时就不用再次解析。
该类文件的特性:
生成的是被解析完成的二进制中间件
编译
gcc -c a.h a.c
其中,由于 a.h 被当成 *.c 文件一样进行编译,生成了一种二进制中间格式的文件(a.h.gch)。
a.h 文件 和 a.c 文件分别被解析,合并,并通过编译生成了 a.o 文件。虽然 a.o 文件中包含了很少的头文件代码,头文件的大小并没有对 a.o 文件的规模产生很大影响,但是对头文件的解析话费的时间,却不容小觑。如果生成 *.gch 文件,再次包含该头文件时就不用再次解析。
该类文件的特性:
生成的是被解析完成的二进制中间件
编译
*.gch文件时,所用到的
*.h文件必须在当前目录下,因为编译头文件不会过环境变量或者
-l进行路径搜索
*.gch文件和所对应的
*.h没有必要的联系,也就是说对 *.h 文件进行修改时
*.gch文件不会自动修改,需要重新编译。因此通常情况下,不轻易改变的头文件才会编译成中间件。
相关文章推荐
- 内存管理---伙伴系统---
- POJ 2942 Knights of the Round Table(点双联通+二分图+染色)
- Qt应用程序以管理员身份启动
- 机器学习中模型评估与选择中的几个小问题
- 最大子段和的以为与二维求解
- Catalan数(卡特兰数)
- Web前端性能优化(五)网站样式和脚本
- oracle日志
- Mysql DATE_FORMAT函数用法
- python中的赋值
- mysql添加唯一约束语句
- 大数据流处理(SparkStreaming)核心源码解读以StreamingContext为主
- python网络应用入门:网络爬虫的使用
- mysql优化limit查询语句的5个方法
- Linux crontab定时执行任务
- namespace 命名空间
- 简单的ADSL登录界面
- BZOJ2440: [中山市选2011]完全平方数dizh
- RMQ算法
- Java开发中的23种设计模式详解