Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between "Include Directories" and "Additional Include Directories"

In configuration properties of my project, under the "VC++ directories" there is an entry for "Include Directories". But under "C/C++" option, there is another entry called "Additional Include Directories". Same thing happens with library directories.

What are the difference between these two entries?

enter image description hereenter image description here

like image 623
Artium Avatar asked Jul 30 '11 13:07

Artium


People also ask

Where is additional include directories?

Adding The Include Directory Go to the Visual Studio Project Property Pages dialog (From the Project menu, select Properties, or right-click on the project in the Solution Explorer). Select Configuration Properties, C/C++, General, and then add $(PIXELINK_SDK_ROOT)\include to the Additional Include Directories field.

How do I add an additional directory?

Open the project's Property Pages dialog box. For details, see Set C++ compiler and build properties in Visual Studio. Select the Configuration Properties > C/C++ > General property page. Modify the Additional Include Directories property.

What is %( AdditionalIncludeDirectories?

For a file, an item macro applies only to that file—for example, you can use %(AdditionalIncludeDirectories) to specify include directories that apply only to a particular file. This kind of item macro corresponds to an ItemGroup metadata in MSBuild.


2 Answers

This is awkwardness that got introduced in VS2010. The VC++ Directories settings used to be located in Tools + Options, Projects and Solutions, VC++ Directories. Global settings that applied to every project that was built on the machine. It is still there but points out that you should now change it in your project settings. A side-effect of the build engine overhaul in VS2010, enabling building with msbuild. Removing the per-project settings would have been logical but that would break too many existing projects.

As such, it is probably best to treat the VC++ Directories settings as the machine default. It is automatically preset by the VS installer. Tinker with it only if you need an unusual directory search order, putting the custom locations last. Very unusual to do so.

It does work however. And it did get taken advantage of eventually. Empowering the Platform Toolset setting in VS2012 and up. Different compiler, different linker, different #include directories, different linker search path. Modified with just one setting, nice.

like image 139
Hans Passant Avatar answered Sep 17 '22 15:09

Hans Passant


The Include Directories corresponds to the environment variable INCLUDE.

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.

While the Additional Include Directories are passed via a command line argument (i.e. the \I option).

like image 43
CodeNaked Avatar answered Sep 19 '22 15:09

CodeNaked