我永远讨厌gch文件

一个学期没写博客了.
今天写OOP做业见鬼了, 调了半天.code

我写了一个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删了就行了gc

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时间

而后我就懵逼了好长时间.co

因此为何会出来一个match.h.gch呢?由于我打编译命令的时候不当心瞎打了一个 g++ match.h ,这个时候g++默认直接生成对应的gch文件(我不知道)工作

因此我之后不会再瞎打编译命令了.生成

相关文章
相关标签/搜索