在编写程序代码时,我们常常需要用到一些下载的库,比如处理计算机视觉领域常用的Opencv库,那么这些库应该如何被添加到自己的VS项目中呢。为此我们首先了解一下VS中与这一操作有关的相关概念。
VS中有关添加库的概念
要想添加一个库,主要需要对VS中的属性管理器中的相关内容进行修改,要修改的内容主要包括以下几个部分:
- 包含目录 包含目录是你所要添加的库中的头文件所在的地址。通俗的来说就是寻找
#include<xxx>
的地址。 - 库目录 库目录是寻找所要添加的库中.lib文件所在的位置。
那么什么是.lib文件呢?可以简单地把.lib文件理解为一个库中cpp文件的合集。(C++的库会把函数、类的声明放在*.h中,实现放在*.cpp或*.cc中。编译之后,.cpp,.cc,*.c会被打包成一个.lib文件,这样可以保护源代码。) - 附加依赖项 附加依赖项就是在库目录中你实际需要用到的.lib文件
所以我们可以看出,xx目录指的是存放某东西的地址,他是一个或多个文件夹,而附加依赖项是存放在库目录中的你所需要用到的一些文件(.lib文件)。
修改目录和依赖项
直接修改
那么上面的这些项目需要在哪里修改呢?
为了方便起见,VS中有一个叫属性管理器的东西,可以为每一个项目设定上述的这些内容,并且可以将这些设定保存下来,成为一张属性表,这样下次如果需要相同的配置就可以直接打开。下面我们就看一下如何配置上面的内容:
-
打开属性管理器 点击
视图
->其他窗口
->属性管理器
,会弹出这样一个栏目。 -
我们可以看到,这里有几个文件夹,比如
Debug|x64
,Release|x64
,这些与你选择的解决方案的配置和平台是对应的,需要用哪个配置,就修改相应的属性,这里我们以Debug|x64
为例。 -
右键点击
Debug|x64
,选择属性
,就可以对上述的各类属性进行设置。
我们首先点击VC++目录
。在VC++目录
中我们可以对上面提到的包含目录和库目录进行设置。
点击包含目录
后,目录列表的右侧出现一个小箭头,点击箭头,选择编辑
,添加所需的目录即可。库目录
的操作类似。
-
我们再点击属性页中的
连接器
->输入
,在这里添加附加依赖项。注意这些附加依赖项应该是在上一步你所添加的库目录中的,只要输入对应依赖项的名字即可。 -
配置好之后点击
应用
保存。
注意,这里我们的所有设置是对所有项目都会生效的,这样做只适合于一些你每次都会使用到的库,如果你有多个版本不同的库(比如Opencv4,Opencv2)想要切换使用,应该如何操作呢?这就需要用到属性表
。
属性表的设置
还是在属性管理器中选择对应的配置,这里选择Debug|x64
为例。右键点击Debug|x64
,选择添加新项目属性表
。
在弹出的窗口中设置属性表的名称,点击添加
。
双击我们新添加得到的属性表,在弹出的窗口中做与刚才相同的设置即可。
注意这两种方法任选其一!
那么当有一个新的工程要用到和当前工程相同的配置时,如何操作呢?我们只需要把属性表复制到该工程的工作目录中,然后打开属性管理器,在刚才添加新项目属性表
的下方有一个添加现有属性表
,在里面选择你已经配置好的属性表即可。
头文件
<>还是""
用<>包含,编译器会先在刚刚设置的包含目录中搜索,用” ” 包含,编译器会在当前的工作目录下搜索。所以用<>添加的一般是标准的库的头文件等,而用""添加的主要是用户自己编写的头文件。
要不要加.h
- 如果使用的是新的C++标准库,不加 .h。例如
#include<iostream>
- C++可以兼容使用C语言的库,可以用两种方式声明:
- 仍旧使用原来C语言的库,可以加 .h,如
#include<string.h>
- 对C的库改进成C++的库,不加.h,但是在库名字前加c,表示来自与C语言。例如
#include<cstring>
- 如果你用的是自己的头文件,都要加 .h
- 仍旧使用原来C语言的库,可以加 .h,如
参考资料:
包含目录、库目录、附加包含目录、附加库目录、附加依赖项之详解
C++头文件用<>还是“” 以及 要加.h还是不加 的问题