我永远讨厌gch文件
一个学期没写博客了.
今天写OOP作业见鬼了, 调了半天.
我写了一个match.h和一个match.cpp, 然后match.cpp里面#include"match.h", 然后g++ match.cpp -o match.o -c 总是出问题
最后我发现把match.h和match.cpp 复制一份到fk.h, fk.cpp, f**k.cpp可以编译
然后在工作目录发现一个match.h.gch
然后把这个match.h.gch删了就好了
match.h.gch是头文件match.h编译的中间结果, 为了加速编译, 在编译match.o的时候会直接把match.h.gch搞进去, 不在去看match.h
问题在于, 如果修改了match.h, 却没有更新对应的match.h.gch, 就会导致编译时用的match.h版本和你以为的不一样. 你以为编译器用的就是你刚刚改完保存到match.h的版本, 但是编译器直接用了之前的match.h.gch, 相当于用的是编译生成gch文件时的旧版本match.h
然后我就懵逼了好长时间.
所以为什么会出来一个match.h.gch呢?因为我打编译命令的时候不小心瞎打了一个 g++ match.h
,这个时候g++默认直接生成对应的gch文件(我不知道)
所以我以后不会再瞎打编译命令了.
我永远讨厌gch文件的更多相关文章
- gch文件学习
今晚学习友元函数的时候一点一点的在写一个头文件和一个源文件,中间g++ test.h了一下,无意中就生成了test.h.gch文件.后来修改了头文件的内容,但是不知道为什么一直各种出错,一番折腾之后才 ...
- GCH文件
GCH文件是将H文件当作CPP进行编译之后出现的结果, 在头文件进行编译后就会在文件夹中看到一个 “文件名.h.gch” 的文件. 那么在再次对gch文件进行编译的时候就会将gch当作cpp一样对待. ...
- 编译生成的h.gch文件是什么鬼?
所谓预编译头,就是把头文件事先编译成一种二进制的中间格式,供后续的编译过程使用.GCC编译头文件后的中间文件是*.gch. 如何将头文件编译为.gch文件呢?用g++编译,格式: g++ xxx.h ...
- Python文件操作详解
Python内置了一个open()方法,用于对本地文件进行读写操作.这个功能简单.实用,属于必须掌握的基础知识. 使用open方法操作文件可以分三步走,一是打开文件,二是操作文件,三是关闭文件.下面分 ...
- python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理
python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...
- paip.gch预编译头不生效的原因以及解决:
paip.gch预编译头不生效的原因以及解决: 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/a ...
- 转: linux文件链接(软链接和硬链接)
链接:一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法. Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic l ...
- Python(三)——文件操作
在我们用语言的过程中,比如要往文件内进行读写,那么势必要进行文件操作,那么咋操作呢?用眼睛直接看么?今天就定个小目标,把文件读写那些事扯一扯 文件操作 把大象放进冰箱分几步? 第一步:打开冰箱 第二步 ...
- 【C编程基础】make命令和makefile文件
1.关于程序的编译和链接 一般来说,无论是C.C++首先要把源文件编译成中间目标文件即 Object File(windows为.obj文件,unix为.o文件),这个动作叫做编译(compile). ...
随机推荐
- Idea 目录结构下有红色波浪线
问题截图: 解决方案: Build -> Rebuild Project
- 将网页html文件离线下载保存到本地的方法
(1)复制想要离线的网页的网址: 范例:http://bbs.xyaz.cn/thread-52540-1-1.html (2)将网址放入迅雷中,让其将html文件下载下来. (3)下载结果
- Word 去除文字底纹
有时候从网页复制的文字有底纹,如何清除呢? 未完 ...... 点击访问原文(进入后根据右侧标签,快速定位到本文)
- 在DCEF3中使用较少的dll文件?
您可以使用以下属性: GlobalCEFApp.CheckCEFFiles:设置为FALSE以跳过所有CEF二进制文件检查功能. GlobalCEFApp.LocalesRequired:一个逗号分隔 ...
- modbus汇总
ModBus协议简介及移植到STM32单片机 https://blog.csdn.net/silent123go/article/details/92440091 Modbus测试工具ModbusPo ...
- GridControl单元格编辑验证的方法
本文实例演示了DevExpress实现GridControl单元格编辑验证的方法,比较实用的功能,具体方法如下: 主要功能代码如下: /// <summary> /// 自定义单元格验证 ...
- lsyncd实时同步工具
简介 Lysncd 实际上是lua语言封装了 inotify 和 rsync 工具,采用了 Linux 内核(2.6.13 及以后)里的 inotify 触发机制,然后通过rsync去差异同步,达到实 ...
- ElasticSearch动态修改副本个数
创建只有 一个主分片,没有副本的小索引: PUT /my_temp_index{ "settings": { "number_of_shards" : 1, & ...
- java之mybatis之缓存
1.mybatis自带缓存功能.分为一级缓存,二级缓存. 2.一级缓存为 session 缓存,在一个 session中 ,一个查询的 select 语句只会执行一次,根据 <select&g ...
- Golang中的RegExp正则表达式用法指南
------------------------------------------------------------ Golang中的正则表达式 ------------------------- ...