如何把opencv的库加入项目中(解决项目在不同电脑上重新配置的问题)

需求:接手了一个视觉项目,其中opencv一类的包含目录和库目录都是绝对地址,由于opencv的版本可能不一致,导致链接器的附加依赖项需要把opencv部分全部清除,重新添加自己版本的opencv,非常麻烦浪费时间;
因此尝试把opencv内的库粘贴到项目目录下,把路径改为相对路径,重新改写附加依赖项;
这样做法的优点:
1.可以把项目运行在没有安装opencv的电脑上;
2.解决不同版本opencv需要修改附加依赖项(如2410,2411~~)
3.无需反复设置路径
4.可以避免不同版本之间可能出现的问题;

1.包含目录设置

–1.1可以在项目目录下创建”Include”文件夹(里面存放一些库的头文件)
这里写图片描述
–1.2把opencv的include文件夹拷贝到项目目录的Include文件夹下
这里写图片描述

–1.3在VS中,项目属性—-VC++目录—-包含目录,输入相对路径
这里写图片描述

$(SolutionDir)\Include
$(SolutionDir)\Include\opencv2
$(SolutionDir)\Include\opencv

表示项目目录下的Include目录(相对地址),文件名可自定义;

2.库目录设置

–2.1首先先确定项目是动态库调用还是静态库调用,本项目采用的是静态库调用;
这里写图片描述

–2.2在项目目录下创建一个”Libraries”文件夹,用于存放第三方库;

–2.3把opencv的库拷贝到项目目录的”Libraries”文件夹下,
opencv静态库路径范例是:D:\OpenCV\opencv\build\x86\vc10\staticlib
然后拷贝到项目目录的”Libraries”文件夹下,静态库很多,熟悉的人可以删除不需要的库,防止项目体积过大;
这里写图片描述

–2.4在VS中,项目属性—-VC++目录—-库目录,输入相对路径
这里写图片描述

$(SolutionDir)Libraries
$(SolutionDir)Libraries\cv_staticlib

表示项目目录下的Libraries目录(相对地址),文件名可自定义;

3.修改附加依赖项

附加依赖项就是Libraries目录下库的名字,Debug版比Release版结尾多一个d,一般两个版本最好分别配置一下;
可以在网上找到相应版本进行删改,也可以在目录里面复制库的名字;
一般最好把opencv没用到的库去掉,比如opencv最常用的core,highgui,imgproc;
不熟悉的可以多做几次试验;
这里写图片描述

4.列举一下常见问题

这里写图片描述
很显然,包含目录设置有问题,可能书写有错误 ,最好复制粘贴;

这里写图片描述
可能是附加依赖项缺失;

这里写图片描述
出现类似这样的问题,可能是库目录的路径设置有问题,先检查库目录路径;
也有可能是附加依赖性有实际并不存在的库名称(比如还残存的旧版,或者原本的库文件遭到破坏,被误删…);
应该检查附加依赖项,把不需要的附加依赖项删除,或者重新添加缺失的库文件;

猜你喜欢

转载自blog.csdn.net/sazass/article/details/82185049