今天,一个学弟编译项目时候,出现找不到opencv的bug,我看控制台输出的库信息,连接了opencv_world341d.lib, opencv_world341.lib,好家伙,无论release还是Debug都这么调用库。
以前当OpenCV助教时候,告诉所有人最标准的配置OpenCV的方法,没人去做,现在一大堆人看了错误的博客弄了个乱七八糟的配置,然后问我怎么改。明确告诉各位,按照这个博客《VS2017配置opencv教程(超详细!!!)》第五步配置出来的opencv都是错误的!!!!!!
配置OpenCV主要配置:包含目录(保证在C++中使用#include 可以找到opencv.hpp),包含目录(就是lib的目录)和附加依赖项。
1 问题说明
大部分人出现的bug都是在在错误的地方配置了opencv,尽管能用,但在别的项目就用不了了。
我先说下这么配置的后果,错误的方法是在Microsoft.Cpp.x64.user这里配置,可以理解为这么配置在全局修改,这么配置的后果会导致其他项目使用一样的配置,如果这个库不是所有项目通用,请不要这么改。
这样改会导致opencv的目录出现在继承的值里面。
2 正确的配置方法
不知道问题根源看没看懂,没看懂也没事。
请按照我的步骤一步一步来。
(1) 右键项目,属性
(2) 打开VC++目录,包含目录→编辑→添加opencv目录
(3) 打开库目录,按照上步配置好opencv的库
(4) 补充需要的opencv库,链接器→输入→附加依赖项
(5) 在环境变量的Path里面添加opencv里面dll的目录地址即可
3 小节
使用Microsoft.Cpp.x64.user配置的opencv项目可以理解为一劳永逸,因为创建的新项目都继承了这个opencv,但opencv毕竟版本太多,大家都用一个注定会冲突。
我这个提供的方法,尽管每创建一个新项目都需要配置一下,但好歹安全,仅在当前项目有用。(玩linux都知道这种苦)
希望以后不要再有这种bug让我改了。