C 編譯時間 PCH stdafx h

2021-08-25 03:03:09 字數 973 閱讀 5813

這段時間集中解決了乙個stdafx的問題, 一點零散總結

預編譯標頭檔案(擴充套件名為.pch)是把乙個工程中較穩定的**預先編譯好放在一 個中間形式的檔案中(pch檔案),編譯器可以更加快捷的使用這個檔案,減少編譯時間。預先編譯好的**可以是任何的c/c++**。

預編譯標頭檔案的目的就是提高編譯速度。編譯器以檔案為單位編譯,如果修改了一工程中的乙個檔案則所有檔案都要重新編譯,包括標頭檔案裡的所有東西。在比較大的c/c++程式中,這些標頭檔案中所包括的東西往往很大,編譯時間很長。其中一部分標頭檔案不常被修改,為了減少因為修改a檔案而去編譯沒有任何修改的b標頭檔案,將b標頭檔案加入pch檔案中,避免重複編譯。

一般情況下,預編譯標頭檔案使用stdafx.h和stdafx.cpp;當然也可以用其他的檔名。具體方法如下:

1. 在專案屬性中定義create/use precompiled header: use precompiled header(/yu),並指定create/use pch through file 為 stdafx.h

2. 修改stdafx.cpp的編譯屬性,create/use precompiled header: create precompiled header (/yc), create/use pch through file 指定為stdafx.h。

預編譯標頭檔案應當只include大的並且影響編譯速度的標頭檔案。最典型的就是windows.h,還包括stl標頭檔案。 自己編寫的的標頭檔案一般來說不應當被include在stdafx.h中,因為變化很頻繁。例外情況是,某些標頭檔案基本穩定而且在很多檔案中被include。

#define of win32_lean_and_mean。win32_lean_and_mean的目的就是減少windows.h以及其所包含的標頭檔案中那些老版本的,不常用的部分。

將source檔案(特別是大量的小檔案)用include指令合併到少量的幾個檔案,然後編譯這個檔案會減少編譯時間。

預編譯**:

自動預編譯和手動預編譯:

C 獲取程式編譯時間

乙個簡單的需求,就是需要程式判斷當前系統的時間是不是在程式編譯之後的,如果系統當前時間在編譯之前,那說明這台機器的時間是不正確的,需要終止程式執行。因為要在程式編譯時候獲取時間,如果每次編譯前手動修改的話,稍微顯得麻煩了一點。vc中可以使用visual c 編譯器預定義的巨集來獲取編譯時間,有 da...

C 基於編譯時間自動生成版本號

我們希望每次編譯發布程式都有不同的版本號。但是每次編譯都需要修改版本號特別麻煩。本文介紹一種基於編譯時間生成版本號的方法。c c 編譯器會內建有兩個獲取編譯時間的巨集 date 和 time include int main void 輸出 date may 14 2020 time 19 34 5...

iOS App獲取編譯時間資訊

目前使用過的有2種 1.通過c語言特性的macro獲取 nsstring builddate nsstringstringwithformat s s date time 這是最簡單有效的方法。2.通過xcode的scheme來完成,xcode種的scheme可以部署在編譯前後可以自定義一些操作 選...