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

opencv安装

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

1.打开虚拟power shell

vs2017 通过NuGet安装opencv + 解决无法解析的外部符号_第1张图片

2.安装opencv3.0

vs2017 通过NuGet安装opencv + 解决无法解析的外部符号_第2张图片

Install-Package opencv3

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

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

get-help NuGet查询

3.测试

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

#include "opencv2/opencv.hpp"
#include 

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错误,如下图
vs2017 通过NuGet安装opencv + 解决无法解析的外部符号_第3张图片

打开项目-属性
vs2017 通过NuGet安装opencv + 解决无法解析的外部符号_第4张图片
再打开常规-平台工具集,可以看到默认的平台工具集为v141,v141目前还不支持opencv,可以替换为别的平台工具集如v140,v120等。
如果没有安装v140,v120等需要安装vs2015/vs2013,可以相互兼容,但不要自己随便卸载,出错会很麻烦
vs2017 通过NuGet安装opencv + 解决无法解析的外部符号_第5张图片

也就是vs2017目前可以用来写opencv代码,但是编译运行必须改为v140或v120等。目前还没有很好的便捷解决方案,如果一定要用v141,可以使用cmake构建以支持vs2017,比较麻烦,有兴趣的可以自己找找,建议还是等等出更好的解决方案吧。
再编译,运行
vs2017 通过NuGet安装opencv + 解决无法解析的外部符号_第6张图片

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

  • 1.工具->选项->调试->符号->勾选符号服务器
  • 2.工具->选项->调试->常规->启用源服务支持

你可能感兴趣的:(环境配置笔记)