OPenCV源码编译 调试 注意事项教程(建议收藏)

        为了更深入的学习和了解OPenCV的开源魅力,我们可以将OPenCV的源码进行编译,重新生成解决方案,得到二进制文件,或者修改原版官方的OpenCV代码,并编译后为自己所用,也可以编译后进入到源码中调试,方便了解部分代码的实现细节。本文记录OPenCV源码编译的一些值得推荐的教程以及编译过程中可能遇到的问题、原因及解决方案,供大家参考学习。
        下面是一些源码编译的博客,写的很好,本人也是按照教程编译的,这里就不重新写了,直接将博客贴上来。

链接1:【opencv源码解析0.1】opencv库VS环境配置
链接2:【opencv源码解析0.2】opencv库源码编译
链接3:【opencv源码解析0.3】调试opencv源码的两种方式
链接4:【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译

【编译过程中可能遇到的问题】

  1. 对于编译过程中configure的解释:链接4中进行了两次configure,但实际上如果第一次configure后,对于上面的红色选项,不要慌,红色不代表配置出错,红色仅代表这些选项是第一次出现在cmake-gui这个界面,用来提示用户注意的,输出文本框底部的Configuring done可以标明我们的配置过程已经完成。红色框中没有勾选的部分可供用户根据需求自行设置,若修改了选项内容,因此需要重新configure一次。否则一次configure即可。
    图1
  2. 对于首次点击configure后跳出的配置平台选择弹窗,需注意:编译win32下的链接库,则下述“Optional platform for generator(if empty,generator uses: x64)”选项应选择“win32”,编译x64下链接库,此图片中默认选项即为x64,直接默认即可。这里的默认选项应该是根据电脑已安装的vs版本(x86<=>win32,x64)进行默认的。
    图2
            若在源码工程中调试例程,需要win32平台,在configure选项中也同上述一样,选择“win32”即可,x64同理。不可在win32配置平台生成的源码中进行x64链接库的生成及代码调试,会出现“error C1041:无法打开程序数据库…”、“error LINK1112: 模块计算机类型X86与目标计算机类型x64冲突”类似错误,如下图所示。
    原因:源码编译时选择的平台-目标计算机类型 与当前生成平台-模块计算机类型选择不一致。图中的error LINK1112是编译时平台选的x64, 生成时调试平台选择的win32。
    图3

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

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

相关文章

桌面专业版【如何进入livecd救援模式拷贝数据】方法介绍

UOS统信在无法进入桌面、tty2或者忘记密码的情况下&#xff0c;如何进入livecd模式&#xff0c;从而实现对系统进行维护、备份数据等。 文章目录 功能概述操作方法步骤一&#xff1a;制作启动盘步骤二&#xff1a;从U盘启动步骤二&#xff1a;进入编辑模式步骤三&#xff1a;删…

线程LWP的概念和控制

一、线程的概念 课本&#xff1a;线程是比进程更加轻量化的一种执行流/线程是在进程内部执行的一种执行流 我们&#xff1a;线程是CPU调度的基本单位/进程是承担系统资源的基本实体 地址空间是进程的“资源”窗口&#xff0c;我们通过栈去访问我们的变量&#xff0c;堆去访问…

找不到concrt140.dll怎么修复,这4种方法可轻松搞定

1. concrt140.dll 定义 1.1 系统文件 concrt140.dll 是一个系统文件&#xff0c;属于 Windows 操作系统中重要的动态链接库&#xff08;DLL&#xff09;之一。它通常位于系统的 System32 或 SysWOW64 文件夹中&#xff0c;是 Microsoft Visual C 2015 Redistributable 包的一…

Spring Boot电商开发:购物商城系统

第2章 关键技术简介 2.1 Java技术 Java是一种非常常用的编程语言&#xff0c;在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中&#xff0c;Java的身影无处不在&#xff0c;并且拥有旺盛的生命力。Java的跨平台能力十分强大&#xff0c;只需一次编译&#xf…

3D 家庭室内设计软件Live Home 3D Pro for Mac

Live Home 3D Pro for Mac 是一款功能卓越的 3D 家庭室内设计软件&#xff0c;具有多方面的优势和特点&#xff1a; 软件下载地址 丰富的设计功能12&#xff1a; 平面图绘制&#xff1a;用户可以使用直观的点击式绘图工具创建详细的二维平面图。提供房间工具、圆弧和直墙工具…

【CSS】鼠标 、轮廓线 、 滤镜 、 堆叠层级

cursor 鼠标outline 轮廓线filter 滤镜z-index 堆叠层级 cursor 鼠标 值说明值说明crosshair十字准线s-resize向下改变大小pointer \ hand手形e-resize向右改变大小wait表或沙漏w-resize向左改变大小help问号或气球ne-resize向上右改变大小no-drop无法释放nw-resize向上左改变…

记录打鼾软件

记录打鼾软件,在现代快节奏的生活中&#xff0c;足够的睡眠是健康生活的保证。然而&#xff0c;打鼾这一常见的睡眠问题却困扰着许多人&#xff0c;影响他们的睡眠质量&#xff0c;甚至可能引发更严重的健康问题。随着科技的进步&#xff0c;记录打鼾的软件应运而生&#xff0c…

设计模式之门面(Facade)模式

前言 在组建构建过程中&#xff0c;某些接口之间直接的依赖常常会带来很多问题、甚至跟本无法实现。采用添加一层&#xff08;间接&#xff09;稳定接口&#xff0c;来隔离本来互相紧密关联的接口是一种常见的解决方案 定义 “接口隔离” 模式。为子系统中的一组接口提供一个一…

Spring Boot技术:构建高效网上购物平台

第3章 系统分析 3.1 可行性分析 在系统开发之初要进行系统可行分析&#xff0c;这样做的目的就是使用最小成本解决最大问题&#xff0c;一旦程序开发满足用户需要&#xff0c;带来的好处也是很多的。下面我们将从技术上、操作上、经济上等方面来考虑这个系统到底值不值得开发。…

Linux下永久修改hostname

root登录 vi /etc/sysconfig/networkvi /etc/hostsreboot重启服务器 hostname查询

多线程基础 保姆级讲解

多线程基础 认识线程1)线程是什么2) 为啥要有线程3) 进程和线程的区别 &#xff08;经典面试题&#xff09; 多线程线程的创建方式方法1 继承 Thread 类方法2 实现 Runnable 接口方法3 使用匿名内部类创建 Thread 子类对象方法4 匿名内部类创建 Runnable 子类对象方法5 lambda …

塑封芯片多大才需要点胶加固保护?

塑封芯片多大才需要点胶加固保护&#xff1f; 塑封芯片是否需要点胶加固保护&#xff0c;并不完全取决于芯片的大小&#xff0c;而是由多种因素共同决定的。以下是一些影响是否需要点胶加固保护的主要因素&#xff1a; 芯片的应用场景&#xff1a;如果芯片所处的环境较为恶劣&a…

买量内卷严重,小游戏们不得不迈向长期展线

小游戏这两年有多火爆自然不必多说。根据《2024 年 1-6 月中国游戏产业报告》&#xff0c;今年 1-6 月国内移动游戏市场实销收入 1075.17 亿元&#xff0c;同比增长 0.76%&#xff0c;较为平稳&#xff1b;但同时小程序移动游戏&#xff08;即小游戏&#xff09;收入达 166.03 …

如何在网站建设中不被外包建站公司忽悠?

让我来公开一些代建站行业忽悠甲方背后的套路吧&#xff0c; 长篇干货警告&#xff01; 像我们这一行网站建设的外包服务商&#xff0c;忽悠人的情况是普遍的事情&#xff01; 很多低劣的外包公司&#xff0c;凭着做一单忽悠一单的手段&#xff0c;成为了我们建站行业的害群之…

Python 使用selenium 4.25 进行爬虫(1)

都说python做爬虫比较好&#xff0c;于是我跟着大家的脚步学习python进行爬虫&#xff0c;但是调试了半天&#xff0c;出现各种各样的问题&#xff0c;最终都得到实现了&#xff0c;下面我们来看具体的代码&#xff1a; from selenium import webdriver from selenium.webdriv…

秋招突击——9/13——携程提前准备和实际面经——专程飞过去线下,结果一面挂(难受)

文章目录 引言面经收集面经整理一1. ArrayList和LinkedList2. 线程安全的列表和链表有么&#xff1f;如果没有怎么实现&#xff1f;3. threadlocal4. synchronized锁升级过程及原理5. ReentrantLock原理&#xff0c;以及和synchronized的对比6. 线程池工作原理7. redis常用数据…

Blob数据类型报错时如何获取错误信息

const pdfOrg async (record) > {// 假设 transferExportPdf是结构 result 返回的错误信息let result await transferExportPdf({ batchId: record.batchId });//blob 结构const blob new Blob([result], {type: result.type,});if (blob.type "application/json&q…

【源码+文档+调试讲解】重庆旅游景点数据分析系统python

摘 要 重庆旅游景点数据分析系统是一个专门为旅游管理部门和景点运营商设计的信息化工具&#xff0c;它通过集成和分析各种数据来优化景点管理和提升游客体验。该系统能够实时收集游客流量、景点信息、满意度反馈等关键信息&#xff0c;帮助管理者洞察游客行为和市场趋势。系统…

MySQL 中 FIELD() 自定义排序示例详解,实现按照指定顺序排序

在 MySQL 中&#xff0c;你可以使用 ORDER BY FIELD() 来自定义排序顺序。这个函数允许你指定字段的自定义排序顺序 field() 函数&#xff1a;是将查询的结果集按照指定顺序排序 格式&#xff1a; FIELD(str,str1,str2,str3,…) 什么时候用&#xff1a; 想让某几个特定的字段…

Java_Se 数组与数据的存储

数组是相同类型数据的有序集合。其中&#xff0c;每一个数据称作一个元素&#xff0c;每个元素可以通过一个索引&#xff08;下标&#xff09;来访问它们。 数组的四个基本特点&#xff1a; 1.长度是确定的。数组一旦被创建&#xff0c;它的大小就是不可以改变的。 2.其元素…