最近由于接触机器学习,全部涉猎到C++方面的开发。在c++中有几个概念很迷糊。c++
VS项目中的包含目录、库目录、附加包含目录、附加库目录、附加依赖项均在"项目->属性->配置属性"下进行配置,具体说明以下:机器学习
VC++目录:函数
包含目录:寻找#include<xxxx.h>中的xxxx.h的搜索目录学习
库目录:寻找.lib文件的搜索目录spa
C/C++:.net
常规->附加包含目录:寻找#include<xxxx.h>中的xxxx.h的搜索目录(每一项对应一个文件夹XXXX,文件夹中包含了编译时所需的头文件,使用时直接#include<XXXX>便可)blog
连接器:开发
常规->附加库目录:寻找.lib文件的搜索目录字符串
输入->附加依赖项:lib库(C++的库会把函数、类的声明放在*.h中,实现放在*.cpp或*.cc中。编译以后,*.cpp,*.cc,*.c会被打包成一个.lib文件,这样能够保护源代码)get
常见问题:
1.包含目录和附加包含目录(库目录和附加库目录)的区别:
包含目录:修改了系统的include宏的值,是全局的;
附加包含目录:用于当前项目,对其余项目没有影响。
(库目录和附加库目录的区别同上)
2.可知包含目录和附加包含目录(库目录和附加库目录)的区别主要在于全局仍是当前,那么当须要对某工程添加这些目录时,一般状况下,都是在附加包含目录和附加库目录中添加的。
3. 要使用一个库,除了要include其头文件之外(附加包含目录),还要在连接过程当中把lib加进去(附加库目录、附加依赖项)。
4.添加方法:
附加包含目录---添加工程的头文件目录:
项目->属性->配置属性->C/C++->常规->附加包含目录:加上头文件的存放目录;
附加库目录---添加文件引用的lib静态库路径:
项目->属性->配置属性->连接器->常规->附加库目录:加上lib文件的存放目录;
附加依赖项---添加工程引用的lib文件名:
项目->属性->配置属性->连接器->输入->附加依赖项:加上lib文件名。
5.当须要向项目中添加.dll动态连接库时,直接将须要添加的.dll文件拖拽到项目生成的.exe所在的文件夹下便可(项目->属性->配置属性->常规->输出目录,能够看到.exe生成在哪一个目录下)。
6.在添加上述几个目录的路径的时候,能够看到$(xxxx),这就是宏了,能够点开右下角的宏查看这些分别表明什么字符串。