cmake+OpenCV4.8.0+contrib4.8.0+cuda 12.2编译踩坑

news2024/9/23 1:37:05

cmake+OpenCV4.8.0+contrib4.8.0+cuda 12.2编译踩坑

准备工具

  • cmake (去官网下载)
  • OpenCV 我下载的是官网发布最新的稳定版本对应的源码,官网目前是4.8.0,github下一个(连不上的可以网上找找资源或者科学上网)
  • OpenCV contrib4.8.0 扩展库,同样是github下载,这个库是扩展库,包括nonfree这类不在标准发布中的内容,用不到的可以不下
  • cuda 看你的显卡支持的版本对应下,cuda支持的vs版本有区别,vs2015只能支持9.0,cuda 12.1以上的版本才支持vs2022(可以参考这个网址中的版本介绍:https://blog.csdn.net/m0_55334148/article/details/132880560)
  • cudnn cuda的深度学习架构,找到官网对应下一个
  • GDCM 这个是用于dicom的库,如果用不到可以忽略
  • ippicv 这个东西挺坑的,我用camke编译始终下不下来,没办法自己下了一个(大概率需要科学上网),这个如果下载失败会在cmake显示一个网址,用那个网址去下
  • face_landmark_model 这个东西是face模块的,如果用不到也可以考虑去掉,这个也是大概率下不下来的东西,cmake提示后手动去下载

编译以及问题的解决

cmake 的各种设置

先将下载的代码文件解压,然后创建一个build文件夹用于存放cmake之后的内容
在这里插入图片描述
打开cmake,选择OpenCV源码的路径以及生成结果存放路径
在这里插入图片描述
第一次点击configuration会弹出需要选择编译器,这个时候需要根据cuda支持的版本确定需要使用的vs版本,同时下方会有选择是x64还是win32的选项
在这里插入图片描述等待第一次配置完成,会有许多红色提示,根据我们的需求配置这些内容。

首先,为了之后的生成速度,我不需要test和sample相关的内容,所以这些标签可以去掉
在这里插入图片描述java和python的库我也不需要,搜索之后取消勾选
在这里插入图片描述然后搜索world,勾选,这个选项可以将dll生成到一个文件里,方便使用,否则会出现好多dll配工程的时候比较麻烦
在这里插入图片描述搜索nonfree,这个控制是否编译扩展库,如果使用contrib则需要勾选并填写extraPath,如果不使用可以省略这一步

在这里插入图片描述extraPath的目录需要配到mmodules
在这里插入图片描述需要cuda的内容,搜索cuda都选了,如果使用dnn则需要先安装cudnn
在这里插入图片描述cudnn安装,解压后将对应文件夹中的内容复制到安装cuda文件夹中对应的位置.
cudnn解压后包含以下内容
在这里插入图片描述一般cuda的安装路径都在下面的路径中,这个路径中会包含不同版本的cuda,找到cudnn对应的版本的文件夹,如果找不到路径就去查看环境变量中cuda的路径
在这里插入图片描述
按照文件夹名称对应复制就行
在这里插入图片描述在cmake中搜索dcm,勾选
在这里插入图片描述点击configuration,第二次配置之后会出现一些新的选项,包含cuda和dcm的内容。

这个时候下方会有一些报错提示,ippicv的这个一般都是因为下载不成功,手动下载 ,之后解压到opencv的3rdparty中,之后点击configuration就可以检测到这个文件了
在这里插入图片描述在这里插入图片描述在这里插入图片描述
如果提示face_landmark_model 下载不成功,则根据报错的网址手动下载,并将文件保存到下面的目录中,同时将文件夹中带有校验码的文件名拷贝后给下载的文件进行重命名
在这里插入图片描述在这里插入图片描述如果提示CMP0146或者CMP0148的错误,则需要修改OpenCV4.8文件夹中的cmakelist文件,可以在其中看到许多类似这种格式的代码,在其中加入关于上方数字相同的内容
在这里插入图片描述

if(POLICY CMP0146) 
cmake_policy(SET CMP0146 OLD) 
endif()

if(POLICY CMP0148) 
cmake_policy(SET CMP0148 OLD) 
endif()

点击configuration就可以消除这些报错。这类报错如果不去掉的话后期编译代码的时候会报错。

在使用vs2022编译的时候报了一个转换类型的错误
在这里插入图片描述这里的解决方式是找到代码的位置然后增加

static_cast<T>

进行类型转化可以解决,搜了一下原因,可能与cuda的新旧版本有关,适用于cuda12.1和cuda12.2,这里原本可能存在一个隐式转换函数,但是新版本没有了,所以编译的时候会有问题。

之后进行正常的all_build和install就可以正常使用,先build,然后仅用于install得到install文件夹,其中包含所需要的dll等内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1230417.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PHM对复杂控制系统的状态监控及故障诊断

背景 该型号复杂控制系统是由7台各种车辆组成的复杂电子、机械复合系统&#xff0c;这些系统通过数据总线连接在一起&#xff0c;总线数据中既有控制指令数据也有执行响应数据或BIT数据&#xff0c;这些数据可以作为系统健康状态评估或故障诊断的依据&#xff0c;然而在以往类…

【机器学习基础】K-Means聚类算法

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a;机器学习 欢迎订阅&#xff01;相对完整的机器学习基础教学&#xff01; ⭐特别提醒&#xff1a;针对机器学习&#xff0c;特别开始专栏&#xff1a;机器学习python实战…

外汇天眼:每周都能赢奖金?

最近&#xff0c;有不少外汇天眼的用户询问天眼客服&#xff0c;每周举办的外汇天眼模拟比赛是真的能拿到奖金吗&#xff1f;答案是&#xff1a;是的&#xff01;表现优秀者可瓜分350美金&#xff0c;如果周周参加&#xff0c;周周获得名次&#xff0c;那这个奖金也是能叠加获得…

Re50:读论文 Large Language Models Struggle to Learn Long-Tail Knowledge

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文名称&#xff1a;Large Language Models Struggle to Learn Long-Tail Knowledge ArXiv网址&#xff1a;https://arxiv.org/abs/2211.08411 官方GitHub项目&#xff08;代码和实体&#xff09;&#xf…

GCC 学习

GCC Resource Center for GCC Internalshttps://www.cse.iitb.ac.in/grc/这是个不错资料网站&#xff0c;有兴趣的可以了解下

2023年【A特种设备相关管理(电梯)】考试报名及A特种设备相关管理(电梯)考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 A特种设备相关管理&#xff08;电梯&#xff09;考试报名参考答案及A特种设备相关管理&#xff08;电梯&#xff09;考试试题解析是安全生产模拟考试一点通题库老师及A特种设备相关管理&#xff08;电梯&#xff09;操…

软件数字签名是什么?软件数字签名有什么作用?

在当今互联网时代&#xff0c;网络安全威胁日益增加&#xff0c;恶意软件层出不穷&#xff0c;为了防止下载到恶意软件&#xff0c;用户在下载软件时都会确认其是安全可信的。由此&#xff0c;企业需要证明其发布的软件真实可信且未被篡改&#xff0c;如何证明这一点呢&#xf…

数据资产入表规划演示(无形资产路线)

数据“入表”有利于企业盘活数据资产、数据资产的交易定价等&#xff0c;通过数据资产“入表”可以加快数据要素市场化配置&#xff0c;为下一步全国数据市场要素市场建立提供基础支撑。数据资产入表&#xff0c;可以拆解为三步&#xff0c;第一步是入表形成原始资产&#xff0…

修改el-radio-group样式,自定义单选组件

修改el-radio-group样式,自定义单选组件 自定义组件 MyRadioGroup.vue <template><div class"btnsBox"><el-radio-group v-model"activeIndex" change"handleClick"><el-radio-buttonv-for"(item, index) in list&qu…

工作电压范围,转换速率高,相位补偿等特性的双运算放大器芯片D4510的描述

D4510是一块双运算放大器&#xff0c;具有较宽的工作电压范围&#xff0c;转换速率高&#xff0c;相位补偿等特性。电路能在低电源电压下:工作,电源电压范围:双电源为1V-3.5V和单电源电压为2V~7V。 主要特点&#xff1a; ● 低电压工作 ● 转换速率高 ● 动态输…

STM32——STM32Cubemx的学习使用总结

文章目录 一、简介二、STM32Cube IDE与MX区别&#xff1f;三、界面介绍和使用四、使用整体框架 一、简介 STM32CubeMX是一个图形化工具&#xff0c;可以非常容易地配置STM32微控制器和微处理器&#xff0c;以及为ArmCortex-M 内核或部分 Linux 设备树生成相应的初始化C代码&…

网站被攻击怎么办?德迅云安全SCDN为您保驾护航

安全加速&#xff08;Secure Content Delivery Network&#xff0c;SCDN&#xff09;是德迅云安全推出的集分布式DDoS防护、CC防护、WAF防护、BOT行为分析为一体的安全加速解决方案。已使用内容分发网络&#xff08;CDN&#xff09;或全站加速网络&#xff08;ECDN&#xff09;…

服务器数据恢复—OCFS2下raid5磁盘损坏导致阵列崩溃的数据恢复案例

服务器数据恢复环境&#xff1a; IBM某型号存储&#xff0c;6块sas硬盘组建一组raid5&#xff0c;划分一个lun分配给Linux服务器并格式化为OCFS2文件系统&#xff0c;共享给虚拟化使用&#xff0c;存放的数据包括24台liunx和windows虚拟机、压缩包文件和配置文件。 服务器故障…

RedisInsight——redis的桌面UI工具使用实践

下载 官网下载安装。下载地址在这里 填个邮箱地址就可以下载了。 安装使用。 安装成功后开始使用。 1. 你可以add一个地址。或者登录redis cloud 去auto-discover 2 . 新增你的redis库地址。注意index的取值 3。现在可以登录到redis了。看看结果 这是现在 在服务器上执行…

Vue3 源码解读系列(八)——生命周期

生命周期 正常的生命周期 // 注册钩子函数 const onBeforeMount createHook(bm/* BEFORE_MOUNT */) const onMounted createHook(m/* MOUNTED */) const onBeforeUpdate createHook(bu/* BEFORE_UPDATE */) const onUpdated createHook(u/* UPDATED */) const onBeforeUnm…

【ARM Trace32(劳特巴赫) 使用介绍 2.3 -- TRACE32 进阶命令之 参数传递介绍】

请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】 文章目录 参数传递命令 ENTRY 参数传递命令 ENTRY ENTRY <parlist>The ENTRY command can be used to Pass parameters to a PRACTICE script or to a subroutineTo return a value from a subroutine 使用示例&am…

Android Studio 安装及使用

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…

数值的整数次方Pow(x,n)

求数组的整数次方 思想&#xff1a; 分而治之 首先判断正负数&#xff0c;然后判断奇偶性问题&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&a…

DP1332E/DP1363F国产多协议NFC读写器芯片支持ISO15693/ISO18092

目录 ISO/IEC 15693与ISO/IEC 18092协议标准差异DP1363F与DP1332E对比共同点主要差异点 ISO/IEC 15693与ISO/IEC 18092协议标准差异 ISO/IEC 15693是用于近距离无线通信中的射频识别&#xff08;RFID&#xff09;技术的标准协议&#xff0c;它定义了与读写器之间的通信协议。这…

AnyTXT Searcher:本地文件内容搜索神器如何搭建与远程访问

文章目录 前言1. AnyTXT Searcher1.1 下载安装AnyTXT Searcher 2. 下载安装注册cpolar3. AnyTXT Searcher设置和操作3.1 AnyTXT结合cpolar—公网访问搜索神器3.2 公网访问测试 4. 固定连接公网地址 前言 你是否遇到过这种情况&#xff0c;异地办公或者不在公司&#xff0c;想找…