C++包管理器vcpkg安装Opencv

2023-11-20

 

转载自:https://www.cnblogs.com/ttweixiao-IT-program/p/12419876.html

电脑配置:window10, 电脑型号:HUAWEI MateBook D, 64位操作系统,基于x64的处理器。 Microsoft Visual Studio 2019

早就听闻 c++ 是最不简单的编程语言,但是没想到连安装包都那么费劲,不像 python 安装完 pip 之后,只要通过 pip install package-name 就可以进行安装。

想在 visual studio 上使用 opencv 包,搜索了资料,发现 c++ 有个包管理器 vcpkg,心中顿时十分欢喜,但是过程没有想象的那么顺利,心酸历程记录如下。

 

1. 在电脑上安装 vcpkg

参考 https://github.com/microsoft/vcpkg 上的安装步骤

(1)先想好 vcpkg 的安装目录,比如我打算放在 d:software 下面。再点击 win+r, 输入 cmd, 再输入d:(一定要加冒号),再输入 cd software

(2)接下来就可以把 vcpkg 的资料 clone下来了,即输入 git clone https://github.com/Microsoft/vcpkg.git

(3)输入 .\bootstrap-vcpkg.bat  (我在运行这个的时候出现了问题,所以我就直接到 D:\software\vcpkg 下双击 bootstrap-vcpkg.bat 文件,效果是一样的)

 

2. 使用 vcpkg 安装 opencv

 

(题外话:这边先和大家分析下我的辛酸历程,我首先输入的是 : .\vcpkg.exe install opencv,但是安装的过程中出现了多次 Error: Building package X failed with: BUILD_FAILED 类似的这样的错误,查阅了资料我也没有头绪,后来就认真看错误解释,发现出现这个问题之后,你选择的解决方案要依据出现这句话前面的内容采取像应的措施,如果出现这句红色的话的前面内容是:Failed to download file.If you use a proxy, please set the HTTPS_PROXY and HTTP_PROXY environment variables to "https://user:password@your-proxy-ip-address:port/". Otherwise, please submit an issue at https://github.com/Microsoft/vcpkg/issues  ,那么极大的可能就是和网络有关系,所以我就重复执行以上命令。结果多试几次,发现后面的运行都会比前面更近一步,所以我更加坚定是因为网络的原因。后来一直停在了 downloading ..... 我就知道因为下载慢的问题一直卡在这里,所以就让按下ctrl+d 终止运行,然后让网络好的同学帮我下载,下载好之后我就放在 -> 后面相应的路径,一般是 vcpkg\downloads 。我们家的是移动100M的宽带,平常手机没什么问题,下载国内的东西速度还算过的去,但是一涉及到访问外网就特别差,所以建议会经常在家里办公又需要连接外网的朋友们最好选择安装电信,电信访问外网比移动快很多,就算是50M的电信,也比移动100M访问外网能力强。为了减少 downloading 的时候,我还背上我的笔记本到肯德基去蹭网,不容易啊。。。后来,我又看到了一些关于 x86 的错误提示,后来想想我的系统是 x64 的,所以我觉得我应该把命令改成 .\vcpkg.exe install opencv:x64-windows ,发现改了以后速度又快了许多。所以在这个过程中,安装完 opencv 就意味着最难的工作已经完成了。)

 

这一步的工作就是输入命令: .\vcpkg.exe install opencv:x64-windows

其次,要注意了,如果你遇到了以下错误,相应的处理方法:

类似 Error: Building package X failed with: BUILD_FAILED,Please ensure you're using the latest portfiles with `.\vcpkg update`, then submit an issue at https://github.com/Microsoft/vcpkg/issues including:

解决方案:这时候要认真审题,审的是出现这段话上面的内容。

(1). 如果出现这个红色语句时上面的内容是:Failed to download file. If you use a proxy, please set the HTTPS_PROXY and HTTP_PROXY environment variables to "https://user:password@your-proxy-ip-address:port/". Otherwise, please submit an issue at https://github.com/Microsoft/vcpkg/issues 。那么就是网络问题,再次运行 .\vcpkg.exe install opencv:x64-windows,或者找个网络好的地方网络好的时候再次运行。

(2). 如果出现这个红色语句时上面的内容是:Cannot find Windows 10.0.18362.0 SDK. File does not exist: C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\um\x64\OpenGL32.Lib。那么就把 windows kit 拷贝到 C 盘的这个目录下。这边注意了,在 visual studio installer 上需要安装 windows 10 SDK,我在 visual studio 的单个组件中 .SDK、库和框架这一栏选择了最新的 windows 10 SDK (10.0.18362.0) 进行安装,安装完之后,会在我的 D 盘下出现一个名叫 Windows Kits 的文件,我就把这个文件拷到了 C:\Program Files (x86)\ 下就可以解决这个错误了。

目前我遇到的错误就这两个,还有个问题就是要是一直停在 downloading ... ,那么可以先下载好文件然后放在 vckpg 的 downloads 文件夹下,这样可以加快下载速度。

当看到没有错误提示时,就说明下载成功了,为了确认是否成功,你也可以输入 : .\vcpkg.exe list 查看已经安装的包是否包含 opencv

 

3. 把 vcpkg 和 visual studio 联系起来

关于这一部分的教程我不多说,网上的例子很多,大家可以参考 https://blog.csdn.net/cjmqas/article/details/79282847 这个教程的第 4 点:Vcpkg和Visual Studio的集成。写的还是不错的。大家只要把按照步骤 4.4 做完就可以了。

这边有两点需要注意的:

1. 新建 visual studio 工程的时候需要先用 visual studio installer 工作负载中需要安装 “使用c++桌面开发” 这个内容以便在新建工程的时候可以选择 C++ 相关的项目类型。

2. 特别要注意,那就是需要把 Debug 旁边的平台改成 x64,这个特别重要!!!

 

4. 输入代码进行测试

输入以下代码:

 

 1 #include <iostream>
 2 #include <opencv2/opencv.hpp>
 3 
 4 using namespace std;
 5 using namespace cv;
 6 
 7 int main()
 8 {
 9     cout << "Hello world!" << endl;
10     Mat imageMat = imread("e:/phototest.tif");
11     namedWindow("figure1", WINDOW_AUTOSIZE);
12     imshow("figure1", imageMat);
13     waitKey(0);    
14     return 0;
15 }

 

要是出现了图片就说明一切都搞定啦!其次可能有一些细节被我忽略了,大家要是还遇到什么问题可以查查资料或者咨询我。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++包管理器vcpkg安装Opencv 的相关文章

  • 软件测试基础——WEB测试模块

    软件测试工程师体系 web测试模块 web测试模块脑图 本文内容以脑图形式展示
  • 什么是接口测试,如何做接口测试?

    比起点点点的功能测试 接口测试 显得专业又高大上 也因此让有些初级测试人员 望而生畏 别担心 其实接口测试也是功能测试的一种 它是针对接口进行的功能测试 写在前面 本文参考了茹炳晟老师的 测试工程师 全栈技术进阶与实践 并结合自己的理解进行
  • Kafka 监控系统Eagle 使用教程 V1.4.0

    1 下载安装zookeeper 2 下载安装kafka 3 下载安装kafka eagle http download kafka eagle org tar zvxf kafka eagle bin 1 4 0 tar gz 4 配置JA
  • 命令注入漏洞(1)

    命令注入漏洞原理 其实命令注入漏洞也叫命令行注入漏洞 此漏洞是指web应用程序中调用了系统可执行命令的函数 而且输入的参数是可控的 如果黑客拼接了注入命令 就可以进行非法操作了 靶机搭建 链接 https pan baidu com s 1
  • 用栈实现括号匹配问题

    通过观察 我们可以发现 括号匹配的字符串 左括号与右括号数目一定相等 且遇到右括号时 必定有与之相匹配的括号在之前最近出现过 这样 可以整理解决问题的思路如下 假设有一串带括号的字符串 依次访问每一个字符 遇到左括号入栈 遇到右括号时 取栈
  • 有关bool(布尔)类型在C语言中的应用

    文章目录 前言 一 bool类型是什么 二 使用举例 总结 前言 由于学习过程中接触到了bool类型 产生了浓厚的兴趣 便写下这一篇文章来阐述bool类型的大概情况 一 bool类型是什么 bool 布尔 是在C99标准中引入的类型 是以英
  • GPT-4来了,但大模型的诸多未解之谜仍然未解

    导语 在3月14日 OpenAI 的 GPT 4 正式发布 它拥有多模态能力 可以接受图像输入并理解图像内容 可接受的文字输入长度增加到 3 2 万个 token 在多种专业和学术基准测试中取得好成绩 然而 功能强大的 GPT 4 与早期的
  • 关于串口调试助手上面的DTR和RTS

    开发调试过程中 突然XCOM串口调试助手无法接发数据 而用了sscom却可以实现正常功能 emo了很久 对比了两个软件对串口的设置 包括波特率 停止位 校验位等设置 也没发现异端 以为是sscom这个软件禁用了XCOM 后来仔细比对发现 X
  • DDR布线要求及拓扑结构分析

    在DDR的PCB设计中 一般需要考虑等长和拓扑结构 等长比较好处理 给出一定的等长精度通常是PCB设计师是能够完成的 但对于不同的速率的DDR 选择合适的拓扑结构非常关键 在DDR布线中经常使用的T型拓扑结构和菊花链拓扑结构 下面主要介绍这
  • 动手学数据分析 Task3

    动手学数据分析 Task3 一 concat merge join 二 groupby 一 concat merge join concat方法可以在两个维度上拼接 默认纵向凭借 axis 0 拼接方式默认外连接 pd concat obj
  • window全局对象的全局变量与脚本的全局变量间的关系

    如果脚本中的变量声明出现在命名元素之前 那这个变量的存在就会组织元素获取他的window属性 而如果脚本中的变量声明出现在命名元素之后 那么变量的显示赋值会覆盖该属性的隐式值
  • 数据库系列MySQL:优化配置文件

    配置流程 1 MySQL文件目录中后缀名为 ini文件的就是MySQL的默认配置文件 2 程序启动会先加载配置文件中的的配置 之后才会真正启动程序 3 更改完配置文件设置后需要重新启动服务端才可以生效 优化方案一 服务器内存 4 8GB k
  • 删除C++ std::string字符串中的空格

    介绍一个使用标准库算法删除std string字符串中空格的方法 代码如下 std string str1 Hello world str1 erase std remove if str1 begin str1 end unsigned
  • unity: C#的Action Event Delegate的异同

    目录 一 Action 二 Event 三 Action和Event区别 四 Delegate 总结 Action Event Delegate的异同 前言 Action Event和Delegate都是C 语言中的重要概念 分别用于管理函
  • Human3.6M数据集下载

    Download H36M annotations mkdir data cd data wget http visiondata cis upenn edu volumetric h36m h36m annot tar tar xf h3
  • 利用Apache Tika分页解析pdf文件内容

    Apache Tika 实现pdf文档分页提取内容 Apache Tika是一个多功能的文档内容提取工具 可以提取多种类型的文档内容 常用的如pdf office等格式 网上的例子基本上都是提取整篇文档内容 实际上用Tika提取pdf等文档
  • QT 实现点击窗口以外任何位置即关闭窗口

    bool QTipLabel eventFilter QObject o QEvent e switch e gt type ifdef Q DEAD CODE FROM QT4 MAC case QEvent KeyPress case
  • LeetCode-----第八题-----字符串转换整数 (atoi)

    字符串转换整数 atoi 难度 中等 请你来实现一个 atoi 函数 使其能将字符串转换成整数 首先 该函数会根据需要丢弃无用的开头空格字符 直到寻找到第一个非空格的字符为止 接下来的转化规则如下 如果第一个非空字符为正或者负号时 则将该符
  • Java-spring相关八股

    1 Java中有哪几种方式来创建线程执行任务 继承Thread类 public class zhouyuThread extends Thread public static void main string args zhouyuThre
  • XL4015-ADJ 5A 大电流DC-DC原理图分享

    如有问题 请加扣扣群 460189483 最近咨询LM2596S ADJ 3A芯片竟然已经10元rmb了 于是找到5A负载能力的XL4015 ADJ 正品4元 以后就用这个代替啦 通过比较发现 XL4015的温度低一点 效率高一点 电流大一

随机推荐

  • Android 实时获取SurfaceView渲染的内容截图

    近期的需求 偶尔需要获取当前SurfaceView上渲染的内容视图 因为是通过网页端控制的 类似预览功能吧 百度了好久 没找到能用的 无意间发现了这个类PixelCopy java 网上没什么介绍 安卓系统封装的一个类PixelCopy j
  • 解决plt.title()中文显示问题

    我们直接用plt title 默认是显示英文 如图 应该在代码前加这几行代码就行了 解决中文显示问题 plt rcParams font sans serif SimHei plt rcParams axes unicode minus F
  • VMware虚拟机安装Ubuntu系统步骤详解

    VMware虚拟机安装Ubuntu系统步骤详解 Ubuntu系统介绍 VMware安装Ubuntu步骤 一 Ubuntu系统的下载 二 VMware workstation的下载安装 三 配置Ubuntu虚拟机系统 四 VMware安装Ub
  • vue插件(vue-print-nb)实现打印功能

    vue插件vue print nb实现打印功能 1 安装vue print nb 2 引入Vue项目 3 在组件中使用 4 vue print nb插件优化 1 安装vue print nb Vue2 0版本安装方法 npm install
  • 重命名文件或目录(renameTo)

    File or directory with old name File file new File oldname File or directory with new name File file2 new File newname R
  • list scala 当前位置 遍历_【Scala笔记——道】Scala List 遍历 foldLeft / foldRight详解...

    HOF foldLeft foldRight foldLeft 和 foldRight 都是对于 List 遍历的 高阶函数 是对列表遍历过程中进行函数操作的高阶函数抽象 List 遍历 假设有两个方法如下 求和 def sum ints
  • lyapunov直接法

    文章目录 定义6 6 Lyapunov第一定理 Lyapunov第二定理 用于刻画渐进稳定 内积分析 定义6 6 Lyapunov第一定理 假设 A C A subset C A C是闭的 如果存在A的邻域D和满足下面两条件的连续函数
  • 简单镜面反射

    前言 本篇博客只是一个简单的实现镜面反射功能的例子 主要是当做笔记使用 通过反射光向量实现流程 如下所示 核心要点 如下所示 1 顶点镜面反射颜色值等于反射光颜色乘以反射强度来获取 而入射光向量 法向量 视角向量 反射光向量的关系图如下所示
  • 【计算机毕业设计】基于微信小程序的电影院票务系统

    基于微信小程序的电影院票务系统 开发语言 Java 框架 ssm JDK版本 JDK1 8 服务器 tomcat7 数据库 mysql 5 7 一定要5 7版本 数据库工具 Navicat11 开发软件 eclipse myeclipse
  • 利用背景渐变实现边框样式

    css实现信封边框和虚线样式 利用线性渐变背景以及背景重复完成 1 利用渐变背景实现信封边框样式 div class letter border div letter border margin 100px width 750px heig
  • shopify 前端教程(还在学可能有很多错误理解以及知识点)

    第一步 本地开发环境的搭建 第一步是安装ruby gem 以下是官网的链接 Downloads rubyinstaller org 友情提示 官网下载速度非常慢 我不会翻墙 我是在csdn搜索别人下载好的安装 Windows下安装 ruby
  • 【Arthas】Arthas 类查找和反编译原理

    1 概述 转载 Arthas 类查找和反编译原理 2 开篇 Arthas支持通过类相关的操作命令 包括sc sm jad等 sc Search Class 命令搜索出所有已经加载到 JVM 中的 Class 信息 sm Search Met
  • Windows实例如何通过本地安全策略限制远程登录的IP地址

    Windows实例如何通过本地安全策略限制远程登录的IP地址 阿里云 禁止所有的IP地址连接服务器的RDP端口 远程连接登录服务器 单击 开始 选择 运行 输入gpedit msc 单击 确定 打开本地组策略编辑器 在左侧依次找到 计算机配
  • 新版jdk的keytool没有md5,怎么解决?

    第一种方案 降级你的java sdk版本 jre1 8 0 201 jdk8以下的版本是可以的 参考 Android平台签名证书 keystore 生成指南 DCloud问答 第二种方法参考 http www 360doc com cont
  • Qt中两个类通过信号槽进行传输数据遇到的问题

    1 场景需求 在QGraphicsItem类中发生重绘后 希望将改动的信息在主窗口MainWindow中的textedit控件中显示出来 例如在选中的QGraphicsItem生成的对象item后 在被鼠标选中时 在textedit中显示这
  • openwrt 进入failsafe模式

    OpenWrt固件通过reset键恢复出厂设置方法 此方式适用于 忘记 OpenWrt 登入密码 配错路由器IP地址导致无法访问路由器 配错firewall或路由表导致无法登入路由器甚至无法ping路由器 操作步骤 1 把电脑的IP地址设为
  • 利用jmeter模拟手机接口测试

    利用jmeter模拟手机接口测试 由于批量上传图片不方便 可以到博主网站查阅原版博客 https blog zhenglin work jmeter use jmeter test app html 本文示例是从网上找到的月光茶人APP程序
  • 微信小程序支付完成后如何跳转指定页面

    很多人说使用reLaunch方式来跳转 此方法在 IOS 正常跳转 而在 Android 报错 relaunch fail can not invoka lelaunch in background 是因为支付成功后就会立马试图执行rela
  • Ubuntu下安装Android Studio

    Ubuntu下安装Android Studio 作者 gaolei xj更新于 05月18日访问 1568 评论 11 大晚上的睡不着 最近老失眠 索性玩玩Android Studio 我电脑的环境是Ubuntu 12 04 64位 And
  • C++包管理器vcpkg安装Opencv

    转载自 https www cnblogs com ttweixiao IT program p 12419876 html 电脑配置 window10 电脑型号 HUAWEI MateBook D 64位操作系统 基于x64的处理器 Mi