1. 程式人生 > >GCC:預編譯標頭檔案的嘗試

GCC:預編譯標頭檔案的嘗試

    公司開發了一個自己的基礎類庫,有著龐大的標頭檔案。為了便於使用並提高編譯速度,嘗試了一下GCC的預編譯標頭檔案的功能:

1、先定義標頭檔案afl.h,內容如下:(afl意味a framework library)

#ifndef _AFL_H_
#define _AFL_H_

//from here to include all head files
#include <Log.h>
#include 
<DebugUtil.h>

#endif
2、預編譯這個標頭檔案:
g++ -o afl.h.gch -x c++-header -c afl.h -g -Wall -I"libpath..."
   使用-x c++-header來說明這個檔案作為C++的預編譯標頭檔案。注意:C和C++的處理方式不一樣,C要使用-x c-header選項。
3、經過上一步,alf.h.gch的這個預編譯的標頭檔案已經產生了。下面是程式碼中的引用方式:
//test.cpp
#include "alf.h"

int main()
...{
    LOG(
"test");
    
return1;
}

    注意:所有的需要庫的地方,都引用alf.h就可以了。
4、編譯這個檔案:
g++ -o test.o -c test.cpp -g -Wall
  呵呵,發現編譯的時候相當快,而且不用指定庫的標頭檔案路徑。