vs2017 通过NuGet安装opencv + 解决无法解析的外部符号

opencv安装

vs2017自带了包管理插件NuGet,通过模拟power shell可通过命令行一句安装,装库非常方便

1.打开虚拟power shell

这里写图片描述

2.安装opencv3.0

这里写图片描述

Install-Package opencv3

自己安装直到完成,和brew用起来一样舒服,大概用时3分钟
这里写图片描述

NuGet安装移除包均非常方便,对常见的指令可输入

get-help NuGet查询

3.测试

给出一个简单的打开摄像头的例子

#include "opencv2/opencv.hpp"
#include <iostream>

using namespace cv;

#define WAITKEY_DELAY 30
#define CAMERA_DEVICE 0

int main(void)
{
    VideoCapture captureDevice(CAMERA_DEVICE);
    if(!captureDevice.isOpened())
        return -1;

    Mat edges;
    namedWindow("edges", 1);
    for(;;)
    {
        Mat frame;
        captureDevice >> frame;
        cvtColor(frame, edges, COLOR_BGR2GRAY);
        imshow("edges", edges);
        auto key = waitKey(WAITKEY_DELAY);
        if(key >= 0) 
            break;
    }
}

注意:
此时opencv是安装到当前项目,如果建立了新项目仍要包含opencv,同样在powershell中输入下面指令,此时不再下载opencv,而是直接安装到当前项目,用时3秒左右。

Install-Package opencv3

如果直接正常运行就可以进行其它开发,出错的请看下文

无法解析的外部符号

如果出现了一堆LNK2019错误,如下图
这里写图片描述

打开项目-属性
这里写图片描述
再打开常规-平台工具集,可以看到默认的平台工具集为v141,v141目前还不支持opencv,可以替换为别的平台工具集如v140,v120等。
如果没有安装v140,v120等需要安装vs2015/vs2013,可以相互兼容,但不要自己随便卸载,出错会很麻烦
这里写图片描述

也就是vs2017目前可以用来写opencv代码,但是编译运行必须改为v140或v120等。目前还没有很好的便捷解决方案,如果一定要用v141,可以使用cmake构建以支持vs2017,比较麻烦,有兴趣的可以自己找找,建议还是等等出更好的解决方案吧。
再编译,运行
这里写图片描述

注:如果提示无法查找或打开PDB

  • 1.工具->选项->调试->符号->勾选符号服务器
  • 2.工具->选项->调试->常规->启用源服务支持
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值