簡體   English   中英

“包含目錄”和“其他包含目錄”有什么區別

[英]What is the difference between "Include Directories" and "Additional Include Directories"

在我的項目的配置屬性中,在“VC++ 目錄”下有一個“包含目錄”條目。 但是在“C/C++”選項下,還有一個條目叫做“Additional Include Directories”。 庫目錄也會發生同樣的事情。

這兩個條目有什么區別?

在此處輸入圖片說明在此處輸入圖片說明

這是在VS2010中引入的尷尬。 VC ++目錄設置曾經位於工具+選項,項目和解決方案,VC ++目錄中。 應用於在計算機上構建的每個項目的全局設置。 它仍然存在,但指出您現在應該在項目設置中更改它。 VS2010中構建引擎大修的副作用,可以使用msbuild進行構建。 刪除每個項目的設置是合乎邏輯的,但這會破壞太多的現有項目。

因此,最好將VC ++目錄設置視為計算機默認設置。 它由VS安裝程序自動預設。 只有當您需要一個不尋常的目錄搜索順序時,才能修改它,將自定義位置放在最后。 這樣做非常不尋常。

它確實有效。 它確實最終被利用了。 在VS2012及更高版本中增強平台工具集設置的能力。 不同的編譯器,不同的鏈接器,不同的#include目錄,不同的鏈接器搜索路徑。 只用一個設置修改,很好。

Include目錄對應於環境變量INCLUDE

窗口中顯示的目錄設置是Visual Studio將搜索源代碼文件中引用的包含文件的目錄。 對應環境變量INCLUDE。

附加包含目錄通過命令行參數(即\\I選項)傳遞。

配置包含路徑

VC ++目錄:包含目錄

  • 此值繼承INCLUDE Visual Studio外部定義的INCLUDE Windows環境變量
    • 環境變量可以是:全局到計算機或具有用戶級別范圍
    • 使用Visual Studio安裝Microsoft Windows SDK時會創建INCLUDELIB環境變量。

C / C ++:附加包含目錄

  • 是項目級別設置...您必須為解決方案中的每個項目定義此值
  • 此值可以持久保存到源代碼控制

補充說明

我應該使用哪一個?

使用包含目錄附加包含目錄的決定取決於您組織的開發過程。 在我看來,更重要的是:

  • 您可以始終如一地可靠地重新創建開發環境(想想:將源代碼交給另一個開發人員)
  • 對於組織內的開發人員,使用一致的方法

關於宏的注意事項

  • C ++項目配置 (不要與C ++預處理器#define指令混淆)繼承來自不同來源的內容。 宏像......
    • $(Include)Windows環境變量繼承它們的值
    • $(OutDir)Visual Studio IDE繼承它們的值

參考

#include <filename> 和 #include "filename" 有什么區別?

“包含目錄”-> #include <header>

“其他包含目錄”-> #include "header"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM