本文介紹了linux 下gcc標頭檔案指定方法,以及搜尋路徑順序的問題。
一.#include <>
與#include
「」#include <>直接到系統指定的某些目錄中去找某些標頭檔案。
#include 「」先到原始檔所在資料夾去找,然後再到系統指定的某些目錄中去找某些標頭檔案。
二.gcc
指定標頭檔案的三種情況:
1.會在預設情況下指定到
/usr/include
資料夾(
更深層次的是乙個相對路徑,
gcc可執行程式的路徑是
/usr/bin/gcc
,那麼它在實際 工作時指定標頭檔案頭徑是一種相對路徑方法,換算成絕對路徑就是加上
/usr/include
,如#include
就是包含
/usr/include /stdio.h)
2.gcc還使用了
-i指定路徑的方式,即
gcc -i 標頭檔案所在資料夾
(絕對路徑或相對路徑均可
) 原始檔
舉乙個例子:
設當前路徑為/root/test,
其結構如下:
include_test.c
include/include_test.h
有兩種方法訪問到include_test.h
。1. include_test.c中
#include
「include/include_test.h
」然後gcc include_test.c
即可2. include_test.c中
#include
或者#include
然後gcc
–i include include_test.c
也可3. 引數:
-nostdinc
使編譯器不再系統預設的頭檔案目錄裡面找標頭檔案
,一般和
-i聯合使用
,明確限定標頭檔案的位置。
在編譯驅動模組時,由於非凡的需求必須強制gcc
不搜尋系統預設路徑,也就是不搜尋
/usr/include
要用引數
-nostdinc
,還要自己用
-i引數來指定核心標頭檔案路徑,這個時候必須在
makefile
中指定。
標頭檔案搜尋順序:
1.由引數
-i指定的路徑
(指定路徑有多個路徑時,按指定路徑的順序搜尋
)2.然後找
gcc的環境變數
c_include_path, cplus_include_path, objc_include_path
3.再找內定目錄
/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
Linux標頭檔案 C C 標頭檔案
linux標頭檔案 c c 標頭檔案。linux常用標頭檔案如下 posix標準定義的標頭檔案 目錄項 檔案控制 檔名匹配型別 路徑名模式匹配型別 組檔案 網路資料庫操作 口令檔案 正規表示式 tar歸檔值 終端i o 符號常量 檔案時間 字元擴充套件型別 internet定義 套接字本地介面 in...
linux標頭檔案
驗證程式斷言 cpio歸檔值 字元型別 目錄項 出錯碼 檔案控制 浮點常數 訊號 可變參數列 標準定義 標準i o庫 公用函式 字串操作 tar歸檔值 終端i o 時間和日期 使用者限制 符號常數 檔案時間 ipc 訊息佇列 訊號量 共享儲存 檔案狀態 程序時間 原系統資料型別 程序控制 1 lin...
Linux標頭檔案
include 是在linux 2.6.29 include linux下面尋找原始檔。include 是在linux 2.6.29 arch arm include asm下面尋找原始檔。include 是在linux 2.6.29 arch arm mach s3c2410 include ma...