gcc 標頭檔案 search option

2021-06-18 20:09:47 字數 1214 閱讀 6226

標頭檔案搜尋路徑相關:

基本的搜尋順序:

1. -i dir

2. gcc 環境變數:c_include_path,cplus_include_path,objc_include_path

3. gcc 系統標準路徑(standard system include directories)

/usr/include  

/usr/local/include

/usr/lib/gcc-lib/i386-linux/2.95.2/include

/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g++-3

/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include

庫檔案但是如果裝gcc的時候,是有給定的prefix的話,那麼就是

/usr/include  

prefix/include

prefix/***-***-***-gnulibc/include

prefix/lib/gcc-lib/***x-***-***-gnulibc/2.8.1/include

4. 還有一些特殊的選項,會參與到這裡邊:

a.  -idirafter dir  這個選項 dir 會在gcc 系統標準路徑後被search.

b. -iprefix prefix  與 -iwithprefix dir 與 -iwithprefixbefore dir 三個選項。

-iprefix prefix 為 -iwithprefix dir 和 -iwithprefixbefore dir 中的 dir 提供字首,將 prefix 字首加在 dir 前,一起起作用;-iwithprefix dir 與 -iwithprefixbefore dir 的區別是:

-iwithprefix dir 中的 dir 會放在 gcc 系統標準路徑後被search, -iwithprefixbefore dir 中 dir 會放在 -i dir 相同的位置。

c. -isysroot dir 與 --sysroot 同樣的效果,將dir當作根目錄,但是 -isysroot dir 只對 header files 檔案有效。

d. -isystem dir, dir 會被當作系統目錄一樣,並在-i 指令後, 系統標準目錄前被search。

標頭檔案 gcc編譯

1 標頭檔案的包含方式 include 預設是從 usr include 目錄下搜尋檔案 include stdio.h include stdio.h 先在當前目錄下搜尋檔案,如果沒有,再去 usr include 下找 2 c語言的編譯步驟 預處理 預編譯 處理 開頭的內容,進行替換 執行巨集替...

預編譯標頭檔案的問題(gcc)

首先 說說預編譯的好處 就是提高編譯速度 其次 預編譯標頭檔案可以用在一下場合 1 提供某種固定功能和不變的型別定義 2 減少編譯的時間 接著 說說預編譯可能帶來的問題 在預編譯中 gcc 會將.h編譯成.gch檔案,按理說只要.h檔案改動就應該重新編譯.gch檔案,但如果沒有將.h檔案設定為.gc...

gcc的標頭檔案和共享庫

gcc在進行編譯預處理時,要在工具鏈預設的一些頭檔案目錄中搜尋標頭檔案,這些目錄一般包括 usr include 和 usr local include linux的系統標頭檔案一般儲存在 usr include 目錄下,自己安裝的軟體的標頭檔案一般存放在 usr local include目錄下 ...