過程

2010-09-21 25 views
2

我會很感激,如果有人能真正解釋當我按下按鈕BUILD正是我的編譯器做什麼,以及編譯器開始編譯我所有的.h和.cpp文件這個過程到底如何回事(我有什麼內部的目標文件?),爲什麼我問這樣的問題?我想知道這是什麼意思,從邁爾斯的書「最小化文件之間的編譯依賴」大約50個具體辦法......(希望你瞭解這本書),在那裏,他解釋這是什麼意思抽象基類和處理類,我的講師解釋我,我不需要過多包含.h文件和多數民衆贊成,約編譯過程中的任何鏈接將被提前瞭解編譯器的最佳方式讚賞爲好,感謝您的幫助過程

+2

發現首先讀了幾維基百科中的文章幾乎可以回答你所有的問題。 – 2010-09-21 12:46:40

回答

5

在做一個完整的編譯,編譯器將依次讀取每個.cpp文件。對於一個給定的.cpp文件,它將會讀取#include指令引用的每個文件,遞歸地編譯代碼。編譯下一個源文件時,它將讀取該源文件中以#include引用的文件。

當您進行任何更改並執行構建時,如果您的.cpp文件中#include指令引用的任何文件發生更改,那麼.cpp文件將被重新編譯,就好像.cpp文件本身已更改。

不必要的#include指令因此有兩個成本:第一,編譯時編譯器必須讀取和處理更多的文件,第二,它增加了.cpp文件需要重新編譯的可能性,即使它實際上沒有改變。