.h.gch文件是什么?

         最近在用makefile编译文件时,编译完成后发现当前目录下有一些.h.gch 文件,很奇怪,上网查了以后,明白那是gcc为了优化编译速度了,如果一个文件里面包含的 .h  比较多的话

gcc  会先将.h头文件预编译成为 .h.gch文件,以便下次编译时能够更快,将会将.h.gch文件自动载入,


但该文件有一个很不好的地方就是


但我们修改了文件头的 .h  文件, gcc仍旧会编译原来的 .h.gch  文件,  不会载入新修改的文件头,  仍旧很容易造成错误  ,  对于此的解决方案,  我们只需要将 Makefile文件  的  clean 目标项  修改为   rm -f *.o *.h.gch  ,  然后在重新编译就好.....



### 使用VC++ 6.0 添加 .gch 文件 Visual C++ 6.0 并不像 GCC 那样直接支持 `.gch` 文件的概念。然而,可以实现类似的预编译头文件功能,这有助于加速大型项目的编译过程。 #### 创建预编译头文件 在 Visual C++ 6.0 中创建并使用预编译头文件的过程如下: 1. **设置项目属性** 打开项目的工作区,在 `Project -> Settings...` 下找到 `C/C++` 类别中的 `Precompiled Headers` 设置页签。选择 `Create (/Yc)` 来指定哪些源文件用于生成预编译头文件;对于其他大多数源文件,则应选择 `Use (/Yu)` 表示这些文件将利用已有的预编译头文件[^2]。 2. **定义预编译头文件名** 同样是在上述页面里,输入预编译头文件的名字(通常是 stdafx.h),这个名称应该与实际存在的头文件相匹配。注意,此操作仅需针对那些负责创建预编译头的目标执行一次即可[^3]。 3. **编写预编译头文件的内容** 编辑名为 `stdafx.h` 的文件,把常用的全局包含声明放在这里面。例如标准库或者其他频繁使用的第三方库接口等都可以放在其中。另外还需要建立一个 cpp 文件如 `stdafx.cpp` ,它只有一行代码用来触发预编译行为:`#include "stdafx.h"`[^4]。 4. **调整 Makefile 或构建脚本** 如果正在使用自定义的 makefile 或者批处理命令来进行自动化构建流程控制的话,那么记得更新它们以适应新的编译规则变化。特别是要确保清理旧版本预编译数据以及正确指定了输出位置等等细节问题[^5]。 ```cpp // stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently. #pragma once #include <windows.h> #include <string> // Add other headers here as needed... ``` ```cpp // stdafx.cpp : source file to trigger precompilation. #include "stdafx.h" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值