当前位置: 首页 > news >正文

【opencv】vs2019中配置opencv

目录

  • 配置opencv
  • 彻底理解配置
    • 编译阶段
    • 链接阶段
    • 运行阶段
  • 总结

配置opencv

  1. 创建空项目,右键选择属性,选择VC++目录
  2. 常规包含目录中添加头文件路径D:\opencv\opencv\build\include ; D:\opencv\opencv\build\include\opencv2
  3. 库目录中添加lib路径D:\opencv\opencv\build\x64\vc16\lib
  4. 选择连接器,选择输入,在依赖项中添加opencv_world4100d.lib
  5. 在环境变量值添加bin路径D:\opencv\opencv\build\x64\vc16\bin

自此配置完成

彻底理解配置

核心概念:编译、链接、运行的区别

编译阶段

做什么:将源代码.cpp和头文件.h转化为中间文件.obj

需要的配置:

  • 告诉编译器去哪找头文件,所以我们需要配置头文件的路径

链接阶段

做什么:讲多个.obj与库文件合并,最终生成可执行文件.exe
需要配置:

  • 告诉链接器去哪找库文件,所以我们需要配置库文件的路径
  • 明确告诉链接器需要链接哪些库文件

:即使库目录正确,链接器也不会盲目链接目录下的所有库,需通过依赖项显式指定。

不添加依赖项的后果:链接失败(未解析的外部符号错误)

运行阶段

做什么:执行.exe文件,此时需要加载动态链接库
需要配置:

  • 环境变量PATH:告诉操作系统去哪里找.dll文件
  • 或者将.dll文件复制到.exe所在目录

:运行时,系统会按照.exe所在目录、系统目录(如C:\Windows\System32)、环境变量PATH中的目录去找.dll。若未找到程序会崩溃并报错 。

总结

  • 编译:头文件告诉编译器“有什么”,但实现藏在库中。

  • 链接:库目录告诉链接器“去哪找”,附加依赖项告诉它“找什么”。

  • 运行:DLL是最终的实现,系统需要知道去哪里加载它们。

通过理解这三个阶段的区别,你可以更自信地配置任何第三方库(不仅仅是OpenCV)。如果遇到问题,按照编译→链接→运行的顺序逐步排查,一定能找到根源!


文章转载自:

http://RGAn2Pe5.nqmkr.cn
http://EuGwWUcr.nqmkr.cn
http://dHAUpeha.nqmkr.cn
http://NleM3ky7.nqmkr.cn
http://f0XLX3Ak.nqmkr.cn
http://GK1N5RX3.nqmkr.cn
http://qDTGAjrT.nqmkr.cn
http://iQ3zj2sO.nqmkr.cn
http://O52jSndg.nqmkr.cn
http://toxdolJy.nqmkr.cn
http://EU9BVus4.nqmkr.cn
http://hylizWAm.nqmkr.cn
http://bp67J4s8.nqmkr.cn
http://JS92whHr.nqmkr.cn
http://gQkku8Kn.nqmkr.cn
http://gkDs77T3.nqmkr.cn
http://91v9h73K.nqmkr.cn
http://9mu5cL1i.nqmkr.cn
http://JM7y7XGi.nqmkr.cn
http://NCwBqh7x.nqmkr.cn
http://VFAsMNnm.nqmkr.cn
http://roRSl89m.nqmkr.cn
http://C0QHJQLA.nqmkr.cn
http://0PJQGgHX.nqmkr.cn
http://i4hu9Pna.nqmkr.cn
http://8E4FFXMg.nqmkr.cn
http://2M5Xzaul.nqmkr.cn
http://DmCT7LLK.nqmkr.cn
http://pWiRj5Bi.nqmkr.cn
http://AbsJHSjq.nqmkr.cn
http://www.dtcms.com/a/214762.html

相关文章:

  • 数据结构第4章 栈、队列和数组 (竟成)
  • NTDS.dit 卷影副本提权笔记
  • vue3文本超出三行显示省略号,点击查看更多显示全部文本
  • AI日报 - 2025年05月26日
  • Android开发namespace奇葩bug
  • 基于SpringBoot+RabbitMQ完成应用通信
  • Hadoop集群部署
  • 如何解决大模型返回的JSON数据前后加上```的情况
  • OpenGL Chan视频学习-7 Writing a Shader inOpenGL
  • 使用队列实现栈和使用栈实现队列
  • vue + ant-design + xlsx 实现表格导出进度提示功能
  • 牛客round94E
  • vue3 数值计算 保留小数位
  • 嵌入式学习之系统编程(五)进程(2)
  • day8补充(中断驱动和队列缓冲实现高效数据处理)
  • 文件管理(第八章、九)
  • PDF处理控件Aspose.PDF教程:以编程方式合并PDF文档
  • 一文带你彻底理清C 语言核心知识 与 面试高频考点:从栈溢出到指针 全面解析 附带笔者手写2.4k行代码加注释
  • DP KVM 为何更难实现 EDID 模拟器?
  • day38python打卡
  • 主流Agent Memory工具or框架对比(Mem0、LangMem、Letta)
  • 若依框架中返回自定义实体类分页数据和总记录数的实现方法
  • 【鸿蒙开发】Hi3861学习笔记-雨滴传感器
  • 433M射频接收芯片 XL520 产品特性,空旷环境下通讯距离可达200米
  • liunx、ubantu22.04安装neo4j数据库并设置开机自启
  • 【多智能体系统开发框架AutoGen解析与实践】
  • 【关于C++跨平台开发的挑战】
  • World of Warcraft [CLASSIC] Jewelcrafting Gemstone 3 [80 WLK]
  • 什么是风控合规?企业如何高效构建风控合规体系?
  • Python多线程:超详细实例讲解线程的创建