VS中包含目录、附加包含目录、库目录、附加库目录及附加依赖项的继承关系

 ——系统属性表(X64和win32之间各自独立,无继承关系)

问题:

  1. 在visual studio中配置第三方代码库时涉及到包含目录、附加包含目录和库目录,那么Include Directories和Additional Include Directories,以及Library Directories和Additional Library Directories作用是什么?
  2. 系统属性表的包含目录、附加包含目录与项目的包含目录附加包含目录又怎样的继承关系?如何设置呢?

VS中C++的包含目录、附加包含目录和库目录以及附加库目录:

  • 作用

              包含目录、附加包含目录:寻找代码中头文件所在的搜索目录,目录不是头文件。

              库目录、附加库目录寻找.lib文件的搜索目录

              附加依赖项:lib库(C++的库会把函数、类的声明放在*.h中,实现放在*.cpp或*.cc中。编译后,*.cpp,*.cc,*.c会被打                                       包成一个.lib文件,这样可以保护源代码) 

  • 区别

MSDN上的解释如下:

The compiler searches for directories in the following order:

  1. Directories containing the source file.
  2. Directories specified with the Additional Include Directories.
  3. Directories specified in the INCLUDE environment variable.


首先:从这里看出,附加二字仅仅对编译过程中头文件的搜索链接顺序有影响,其他方面与包含xx无任何影响!

1、系统属性表中的继承关系:

特点:

  • 全局性,对所有项目都会产生继承。
  • debug设置和release设置都会互相继承

 

2、项目属性表中的继承关系:

特点:

  • 局部性,只对本项目负责,对系统属性没有影响。
  • debug设置和release设置不会互相继承。

因此,总结出两种设置方法:

第一种:只在 包含目录 设置头文件包含,且只在 库目录 设置库文件路径,然后 附加依赖库 指明库名lib

第二种:只在 附加包含目录 设置头文件包含,且只在 附加库目录 设置库文件路径,然后 附加依赖库 指明库名lib。但是为提高编译时的搜索效率,需要确保在包含目录填入$(IncludePath),继承VS自身的一些基本头文件。

                           

注:

1、附加库目录+附加依赖项共同构成了lib依赖库的完整路径

2、当需要向项目中添加.dll动态链接库时,

  • 方法一:设置dll的环境变量
  • 方法二:拷贝dll至exe执行目录.(exe生成目录位置:项目->属性->配置属性->常规->输出目录)。
原文地址:https://www.cnblogs.com/Henry-ZHAO/p/12725225.html