文章目录
静态链接库(lib):
在链接时,将库中的二进制代码和我们的程序的二进制代码合并到一个新的可执行文件中。
lib应该说是一个程序集,只是把一些相应的函数总结在一起, 如果调用lib中的函数,在工程编译时,这些调用的函数都将参加编译。从内存管理的角度来看,lib必须被链接到主程序中,主程序进入内存,lib也同时进入内存。
缺点:代码冗余
动态链接库(dll, Dynamic Link Library):
动态链接库是以共享的dll文件为基础,链接时库中的代码可以不加入到可执行文件中。多个应用程序可以共享一个dll文件中的二进制代码。.dll文件是程序运行需要载入的动态链接库
环境变量的PATH:
是非系统路径下的可执行程序的路径。
对于外来的第三方库可执行程序而言,不提前告诉系统路径,运行时会出错。一般的软件安装结束的时候都会把自己的可执行程序路径添加进系统的。所以不要添加没有可执行程序的路径到环境变量中。
include:
告诉系统所使用的头文件路径。比如#include <opencv2/opencv.hpp>,若不添加头文件路径,找不到opencv2/opencv.hpp。结果是编译不通过。
报错:xxx not foundlib:
即使编译通过了,运行也可能出现错误。一般程序是动态链接的,即运行的时候才会报错,所以要告诉系统需要的第三方库的库路径在哪,程序运行的时候就会去指定的路径找。
在项目属性设置中添加库文件,目前使用的是vs2019:
1. 打开VS,进入自己的项目。
2. 在项目中引入所需的头文件
2.1 找到解决方案资源管理器–>右键项目名–>属性
2.2 打开配置属性选项,找到VC++目录
2.3 在包含文件中添加所需要添加的头文件,即include文件
最终会显示如下:
3. 在项目中添加lib静态库
3.1 添加文件引用的lib静态库路径
在库目录中添加所需要的库文件,即lib文件所在的目录:
📢📢📢 注意添加头文件和库文件时,需要关注自己的计算机是32位还是64位操作系统的。对号入座,否则引入的库文件是错误的。
3.2 添加工程引用的lib文件名
- 点击:链接器–>输入
- 在附加依赖项中添加lib文件,即加上所有的lib文件名:
LNK2001问题
若出现以下的问题:
是因为链接器配置的有问题,这时候请检查lib包是支持32位操作系统还是支持64位操作系统的。若lib包是支持64位操作系统的,此时需要将项目改为X64的,然后再次重复上面的配置过程。
再次运行程序,发现编译通过。
创建属性表
若在编程中,需要多次新建项目,并每次都会引入特定的包。则可以通过新建一个配置文件,在以后的新建的项目中,引入这个配置文件。
-
点击视图–>其他窗口–>属性管理器
此次以Debug状态下的x64平台为例子: -
右键Debug|x64–>添加新项目属性表:
-
修改属性表的名字和存放的目录
-
双击打开CameraLinkSDK属性表:
-
按照上面讲的2、3步骤:分别引入头文件和库文件。
-
再次新建项目,直接点击视图–>其他窗口–>属性管理器–>添加现有属性表