在学习了静态库和动态库之后,了解的更多了之后,我们做项目经常会用到开源代码,或者开源但是还没有编译的项目。前者的话如果要使用可以直接在自己的项目中添加依赖路径(是为了找到头文件)和库目录(为了找到依赖库文件),不同于QT直接在.pro文件中直接INCLUDEPATH += 所有的依赖头文件路径,LIBS+=所有的库文件路径,在VS中添加,是在调试->调试属性->配置属性->vc++目录中的包含目录和库目录分别对应着二者。
不同于静态库的使用,编译的时候把库文件直接链接成一个可执行程序,动态库则是在程序运行的时候去加载一系列的.dll文件。如果没有添加动态库,程序会报如下找不到一系列动态库的错误。
关于找不到动态库,我知道的有三种解决方案:
一、将缺少的动态库(一系列.dll文件)拷贝到与.exe同级的目录中,一般.exe文件都是在debug路径下(哈哈哈哈一般人都能找到,新手可能找不到,emmmmm只是可能哈哈哈哈)。这时候在项目中直接运行即可成功。
二、其实方法一已经是最简单的方法了,方法二只是多个方法,讲述一下让项目自动根据路径去找到.dll的动态库。下面是添加路径的方式,在菜单栏---调试->调试属性->配置属性->调试->工作目录,点击编辑将目录添加也可。
三、就是将动态库的路径添加到环境变量哈哈哈哈,有点多此一举了就是。(方法三好像需要重启vs)但是环境变量添加后不会立即更新,好像是重启之后才会自动更新,这个还得重启我没有测试,但是不会直接更新确实可以知道。win+R组合按键打开cmd,输入echo %path%即可查看环境变量,发现并没有刷新。
下面是不重启更新环境变量的方法:win+R组合按键打开cmd,set path=c即可更新。也可以重新开一个终端(win+R组合按键打开cmd,输入echo %path%即可查看环境变量,发现此时更新。)
有一个经验是:在学习vs配置opencv时候,为了以后不用每次做有关opencv的项目时候都需要重新配置路径啥的。可以在vs菜单栏中点击------视图->其他窗口->属性管理器------,然后添加新的项目属性表。将项目属性表配置好后,以后可以每次都将此项目属性表复制到新工程的根目录中,然后在------视图->其他窗口->属性管理器------中点击添加项目属性表进行加载即可。