vc的預編譯頭功能很強大,可以極大的提高編譯效率,其實gcc也支持這項功能,設置更爲簡單。把所有外部文件都放到一個頭文件裏,比如predefine.h,所有引用外部文件的cpp文件都包含這個predefine.h就可以了。
首先要產生gch文件:
predefine.h.gch : predefine.h
$(cc) $(CFLAG) -x c++-header $> $^
然後要讓編譯器知道#include "predefine.h"的源文件去檢查有gch文件。
$(OBJ) : predefine.h.gch
注意事項:預編譯頭文件不能包含在其他的頭文件裏面,只能被源文件包含。 個人建議儘量不要在頭文件裏包含其他的頭文件,而是放到源文件中。比如a.h要用b.h的類,不要在a.h裏面去包含b.h,而是在a.cpp裏這樣包含:
#include "b.h"
#include "a.h" //必須保證這個順序。
OK,大功告成了。享受快速編譯的樂趣吧。
使用gcc的預編譯頭文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
springboot中,如何利用AOP,實現函數執行時間打印並支持給annotation傳遞參數
Justinjiang1314
2020-07-05 15:52:25
如何在nginx 反向代理(proxy_pass)配置swagger2
Justinjiang1314
2020-07-05 15:52:25
ACE_TRACE
kevinwhite
2020-07-01 20:16:35
SpringBoot小常識系列--配置文件相關屬性的命名規則
Justinjiang1314
2020-05-15 02:58:23
如何管理SpringBoot子模塊的配置文件
Justinjiang1314
2020-05-10 02:17:49
在Solaris上安裝ACE
kevinwhite
2020-02-23 07:52:25
小白服務器編程指北(1)——從零搭建Django服務器(Centos7+Nginx+uWSGI)
slunlun
2020-02-21 06:00:44
小白服務器編程指北(2)——用Docker編配你的服務器環境
slunlun
2020-02-21 06:00:43
C#服務器開發vs環境配置
LixiSchool
2019-04-11 16:43:38
將sqlite數據庫中的空格都去掉啊?
灵思致远Leansmall
2018-12-14 22:41:06
centos7 + mysql + lamp + glpi
zhbpd
2018-09-02 01:02:11
centos 7 設置時區
zhbpd
2018-09-02 01:02:09
centos 7, 啓動service提示:log_daemon_msg: command not found
zhbpd
2018-09-02 01:02:09
新建自己的windows service
guoxin_min
2018-08-31 08:26:47
字符,字節和編碼
kevinwhite
2018-08-28 11:25:41
24小時熱門文章
-
再談23種設計模式(3):行爲型模式(學習筆記)
-
Power Automate Desktop 安裝完,登錄後老是提示one driver 錯誤
-
微前端學習筆記(4):從微前端到微模塊之EMP與hel-micro方案探索
-
微前端學習筆記(1):微前端總體架構概述,從微服務發微
-
985 碩士程序員,空窗 4 個月沒有 Offer!
-
一文搞懂 Spring 循環依賴
-
賽博鬥地主——使用大語言模型扮演Agent智能體玩牌類遊戲。
-
VScode右鍵打開(添加到右鍵)
-
記一次 .NET某工控視覺自動化系統 卡死分析
-
WindowsServer--SQL Server搭建主從同步實現讀寫分離 - 事務性分發