假設存在下圖所示的專案目錄結構。
如果存在如下包含標頭檔案的**,則大多的專案中需要通過「-ifoo」和「-ibar」指明兩個搜尋標頭檔案的目錄。 1
2
foo.c
#include "bar.h"
1
2
bar.c
#include "foo.h"
然而,當專案規模很大存在很多的目錄時,這種方式將顯著地降低專案的編譯速度。因為「-i」選項使用得越多,意味著編譯每乙個c檔案時所需進行標頭檔案搜尋的目錄也越多。
為了避免這一問題,我們可以將**改為: 1
2
foo.c
#include "bar/bar.h"
1
2
bar.c
#include "foo/foo.h"
如此一來,整個專案只需乙個「-isrc」選項就行了。
促使我意識到這一問題,是因為前段時間看到blink開源專案的一封郵件,其中談到採用上面的第二種方法後,在windows上編譯blink的速度提高了40%。
本文出自李雲的部落格,請務必保留此出處:
程式設計好習慣 減少搜尋標頭檔案的目錄數
假設存在下圖所示的專案目錄結構。如果存在如下包含標頭檔案的 則大多的專案中需要通過 i foo 和 i bar 指明兩個搜尋標頭檔案的目錄。1 2 foo.c include bar.h 1 2 bar.c include foo.h 然而,當專案規模很大存在很多的目錄時,這種方式將顯著地降低專案的...
程式設計好習慣 減少搜尋標頭檔案的目錄數
假設存在下圖所示的專案目錄結構。如果存在如下包含標頭檔案的 則大多的專案中需要通過 i foo 和 i bar 指明兩個搜尋標頭檔案的目錄。foo.c include bar.h bar.c include foo.h 然而,當專案規模很大存在很多的目錄時,這種方式將顯著地降低專案的編譯速度。因為 ...
程式設計好習慣 減少搜尋標頭檔案的目錄數
假設存在下圖所示的專案目錄結構。如果存在如下包含標頭檔案的 則大多的專案中需要通過 i foo 和 i bar 指明兩個搜尋標頭檔案的目錄。foo.c include bar.h bar.c include foo.h 然而,當專案規模很大存在很多的目錄時,這種方式將顯著地降低專案的編譯速度。因為 ...