GCC:先行編譯標頭檔的嘗試

來源:互聯網
上載者:User
    公司開發了一個自己的基礎類庫,有著龐大的標頭檔。為了便於使用並提高編譯速度,嘗試了一下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");
    return 1;
}

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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.