#include指令載入外部庫的兩種用法
阿新 • • 發佈:2019-01-06
C中可以通過#include <header.h>
和#include "header.h"
來載入檔案,兩者的區別主要是在include載入的搜尋路徑上存在不同。
區別是:
採用#include <header.h>
,連結器會按照系統指定目錄(如Windows下給INCLUDE環境變數指定的路徑順序)去查詢標頭檔案<header.h>
。
採用#include "header.h"
方式,連結器會先到當前目錄查詢標頭檔案header.h
,如果沒找到,才會在到系統指定目錄查詢。
所以在Windows下如果想使用#include <own_iostream>
own_iostream
檔案拷貝到環境變數INCLUDE的路徑下,如我的電腦中採用的INCLUDE=“xxx\VS2010\VC\include”,則需要將相應檔案拷貝到該路徑下。如果是自定義的庫檔案,一般建議是採用相對路徑`#include “own_iostream”在當前目錄下搜尋。
在Linux系統下,使用gcc編譯時查詢標頭檔案,按照以下路徑順序查詢:
1. gcc編譯時,可以設定-I選項以指定標頭檔案的搜尋路徑,如果指定多個路徑,則按照順序依次查詢。比如:gcc -I /usr/local/include/node a.c
2. gcc會查詢環境變數C_INCLUDE_PATH,CPLUS_INCLUDE_PATH中指定的路徑。
3. 系統預設的路徑,分別是/usr/include
/usr/local/include
,/usr/lib/gcc-lib/i386-linux/2.95.2/include
(gcc庫檔案的路徑,各個系統不一致)。同時,include也可以採用相對路徑,比如,a.c需要包含/usr/local/include/ownLib/header.h
,由於/usr/local/include
是系統的預設搜尋路徑,所以在a.c中可以用相對路徑包含,#include <ownLib/header.h>
。