当前位置: 首页 > 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://www.xdnf.cn/news/654391.html

相关文章:

  • 同一个核磁共振(MRI)检查中,不同序列的图像之间空间坐标定位如何实现
  • Redis | 缓存技术对后端的重要性
  • STM32之SPI——外部FLASH和RFID
  • 宫格导航--纯血鸿蒙组件库AUI
  • 树莓派超全系列教程文档--(47)如何使用内核补丁
  • QT中常用的类
  • Cesium 实战 26 - 自定义纹理材质 - 实际应用之飞线(抛物线)
  • 并发的产生及对应的解决方案之服务架构说明
  • 第1章第1节:安全运维基础思维与体系建设-安全运维的定义与核心目标
  • Ext系列文件系统
  • 分布式缓存:证明分布式系统的 CAP 理论
  • [闲谈]C语言的面向对象
  • 易境通WMS系统:赋能快消品海外仓高效管理
  • 完美解决Docker镜像无法拉取问题(转载)
  • 服务器的IP是什么东西?
  • uniapp-商城-69-shop(2-商品列表,点击商品展示,商品的详情, vuex的使用,rich-text使用)
  • ESP8266_AP机械手 第三篇Uniapp遥控器
  • ElasticSearch--DSL查询语句
  • 信创 CDC 实战 | OGG、Attunity……之后,信创数据库实时同步链路如何构建?(以 GaussDB 数据入仓为例)
  • FreeRTOS 在物联网传感器节点的应用:低功耗实时数据采集与传输方案
  • 综合实现案例 LVS keepalived mysql 等
  • 《基于Keepalived+LVS+Web+NFS的高可用集群搭建》
  • MPI实现大数据Ring Broadcast逻辑
  • 关于 SSE(Server-Sent Events)过程的简要解剖
  • 07-后端Web实战(部门管理)
  • Prometheus、Exporter 和 Grafana:性能分析铁三角
  • 卷积神经网络(CNN)模型
  • 在 Spring Boot 项目中如何合理使用懒加载?
  • Anaconda 安装 PyTorch 的详细步骤(2025年最新版)
  • uniapp开发 H5端使用百度地图