1. 程式人生 > >VS中C++的包含目錄、附加包含目錄和庫目錄和附加庫目錄的區別

VS中C++的包含目錄、附加包含目錄和庫目錄和附加庫目錄的區別

文章轉自[VS中C++的包含目錄、附加包含目錄和庫目錄和附加庫目錄的區別],版權歸[TheOneGIS]所有

對Visual Studio中C++的包含目錄、附加包含目錄和庫目錄和附加庫目錄的區別不是很清楚,參考別人的文章整理出來的。供大家分享學習!

Visual Studio C++工程中,右鍵一個Project,可以發現有兩個地方設定Include的相關目錄:

1. VC++ Directories -> Include Directories
2. C/C++ -> General -> Additional Include Directories

MSDN上的解釋如下:

“VC++ Directories -> Include Directories” : Directory settings displayed in the window are the directories that Visual Studio will search for include files referred to in your source code files. Corresponds to environment variable INCLUDE. More information : http://msdn.microsoft.com/en-us/library/t9az1d21(v=vs.80).aspx

“C/C++ -> General -> Additional Include Directories”: The directory to be added to the list of directories searched for include files. More information : http://msdn.microsoft.com/en-us/library/73f9s62w(v=vs.80).aspx

下面這個連結中給出了編譯器在編譯過程中查詢包含目錄(Include檔案)的順序:
The compiler searches for directories in the following order:

Directories containing the source file.

Directories specified with the /I option, in the order that CL encounters them.

Directories specified in the INCLUDE environment variable.

其中Order2中的/I是由C/C++ -> General -> Additional Include Directories設定的。

而Order3中的INCLUDE是由VC++ Directories -> Include Directories設定的。

同理,

1. VC++ Directories -> LibraryDirectories
2. Linker -> General -> Additional Library Directories

也一樣。


所以在VS中開發C++程式,我們一般是這樣設定的:

In C++, you got the header files (.h), the (.lib) files and the (.dll) files.

In Visual Studio, you provide the location to search for these files in three different places:

Configuration Properties => C/C++ => General => Additional Include directories. Here you list out the "include" directories that you want searched and made available.

Configuration Properties => Linker => General => Additional Library directories. Here you list out the "lib" directories that you want to be searched and made available.

Configuration Properties => Linker => Input => Additional dependencies. Here you explicitly specify the .lib files that want to include.

就是說我們一般使用C/C++和Linker下面的設定,而一般不建議使用VC++下面的設定。