1. 程式人生 > >#include“標頭檔案“的相對路徑是相對誰的路徑

#include“標頭檔案“的相對路徑是相對誰的路徑

今天發現一個不錯的帖子。轉到自己的部落格,收藏。

要了解vc中使用#include命令包含標頭檔案所搜尋的路徑,必須先了解vc中的幾種路徑:

1. 系統路徑

系統路徑在vc中是"Tools->Options->Directories"中"Include files"指定的路徑。

開啟此對話方塊會發現預設有這幾條路徑:

C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE

C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE

C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE

我們可以在這裡新增,這樣我們自己新增的路徑也會成為系統路徑。新增的格式必須按照上面來寫。

2. 當前路徑

當前路徑是指vc工程中工程檔案所在的路徑,即.dsw檔案所在路徑。

網上有很多朋友說,當前路徑是指.cpp檔案所在路徑,經過測試,這個說法也是正確的。但是使用vc編譯時,是不正確的。

3. 附加路徑

附加路徑是指在"Project->Settings->C/C++->Preprocessor->Additional include directories "中指定的路徑。

此路徑預設為空,我們可以在此處填寫需要路徑,比如:在此處填入"C:\123\",(不要引號),那麼附加路徑就會變成"C:\123\" 。

上面的1,3路徑,我們均可以自己編輯。在編輯過程中,可以使用絕對路徑,也可以使用相對路徑。

比如,在新增系統路徑時,可以這樣填寫:

 .\SRC\  這樣寫表示,當前目錄中的SRC資料夾;

 ..\SRC\  這樣寫表示,當前目錄的上一層目錄中SRC資料夾;

 ...\SRC\ 這樣寫表示,當前目錄下  ..\SRC\\ 路徑,當然這種寫法已經和第一種重疊了。

這種相對路徑的寫法,vc會自動幫我們轉化為絕對路徑。

在新增附加路徑時,其相對路徑的寫法和系統路徑是一致的。

在vc中使用#include 命令,有三種形式:

1. #include <file.h>

vc執行這條指令時,它會在系統目錄中去查詢 file.h 檔案。

在此條碼命令中,vc不會去當前路徑和附加路徑中查詢檔案。

2. #include "file.h"

vc執行這條指令時,它首先會搜尋附加路徑,如果沒有則會搜尋系統路徑,如果還沒有則會去搜索當前路徑。

3. #include "directory\file.h"

vc執行這條指令時,它會去指定的路徑去查詢檔案,如果沒找到,它不會繼續查詢。 

#include”xxx.h”

把include資料夾(裡面是某個庫的標頭檔案)拷到自己的專案中,新增標頭檔案時需要使用#include”include\xxx.h”方式,如果打算使用#include”xxx.h”方式。

解決方法:

  1. 專案屬性->C++>常規->附加包含目錄:$(ProjectDir)\include
  2. 新增類庫,在專案屬性->連結器>常規->附加庫目錄:$(ProjectDir)\lib 
    其中:\$(ProjectDir)代表你的專案所在目錄:x:\…\projectname

所有巨集定義可以在“附加包含目錄”或者“附加庫目錄”編輯介面,點選巨集“(M)>>”檢視