VS项目中包含目录(Include Directories)和附加包含目录(Additional Include Directories)的区别

安装了vs2010设置目录时出现疑惑

一、查博客有写到:

1. 配置属性-》vc++ 目录-》包含目录(VC++ Directories -> Include Directories):

        修改了系统的include宏的值,是全局的;在使用的时候可以直接使用#include ,此时“包含目录”下的头文件已经在系统头文件中了,可以使用#include<>;

2. C/C++-》常规-》附加包含目录C/C++ -> General -> Additional Include Directories):

          用于当前项目,对其他项目没有影响,同样可以使用#include<>包含

二、但是通过在vs2010上验证:

          同一个解决方案下建多个项目,在其中一个项目的属性中设置了vc++目录-》包含目录,其他的项目中还是无法直接使用包含目录中的头文件。感觉并不像查找的资料中的所说的包含目录修改了系统的include宏的值。

            原来,VC++ Directory是原来全局的Tools Options->Projects and Solutions里面的选项,2010中被设计为可以按项目设置,



  三、到现在为止个人认为二者的区别真正存在的是(来自msdn):

编译器在编译过程中查找包含目录(Include文件)的顺序:

The compiler searches for directories in the following order:

  1. Directories containing the source file.
  2. Directories specified with the /I option, in the order that CL encounters them.
  3. Directories specified in the INCLUDE environment variable.
           

  其中/I是 C/C++-》常规-》附加包含目录C/C++ -> General -> Additional Include Directories设置的目录; INCLUDE是由 vc++ 目录-》包含目录VC++ Directories -> Include Directories设置的目录。

   所以C/C++-》常规-》附加包含目录C/C++ -> General -> Additional Include Directories这肯定是当前项目的,所以还是建议设置包含目录时在这个选项下设置。


   

另外在设置链接库的时候:有两种设置

包含头文件在:

1 VC++ Directories -> Include Directories

2 C/C++ -> General -> Additional Include Directories

包含库目录在:

1 VC++ Directories -> LibraryDirectories

2 Linker -> General -> Additional Library Directories


并且在代码中明确写上:#pragma comment(lib, "*.lib") 或者在 Linker -> Input-> Additional dependencies 填写**.lib


但是:一般使用C/C++和链接器(Linker)下面的设置,而一般不建议使用VC++下面的设置



如有纰漏还请指出。



你可能感兴趣的:(Visual,studio)