標頭檔案搜尋路徑相關:
基本的搜尋順序:
1. -i dir
2. gcc 環境變數:c_include_path,cplus_include_path,objc_include_path
3. gcc 系統標準路徑(standard system include directories)
4. 還有一些特殊的選項,會參與到這裡邊:/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
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目錄下 ...