我永遠討厭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文件(我不知道)工作

因此我之後不會再瞎打編譯命令了.生成

相關文章
相關標籤/搜索