Windows C++ 第三方库使用流程备忘录--OpenCV

目录

[三个东西:头文件、lib、dll 分别是什么?](#三个东西:头文件、lib、dll 分别是什么?)

[1. 头文件(.h / .hpp)](#1. 头文件(.h / .hpp))

[2. lib 文件(静态链接信息)](#2. lib 文件(静态链接信息))

[3. dll 文件(运行时真正代码)](#3. dll 文件(运行时真正代码))

[Windows 找 DLL 有规则。](#Windows 找 DLL 有规则。)


写一个 C++ 程序,用 OpenCV 打开摄像头。

实际上做了三件事:

复制代码
你的代码
   ↓
C++编译器
   ↓
生成exe
   ↓
Windows运行

中间涉及三个阶段:

复制代码
1. 编译阶段
2. 链接阶段
3. 运行阶段

三个东西:头文件、lib、dll 分别是什么?

cpp 复制代码
#include <opencv2/opencv.hpp>

cv::Mat img;

程序需要 OpenCV,但是编译器不知道:

cv::Mat 到底是什么?

所以需要:

1. 头文件(.h / .hpp)

作用:

告诉编译器"这个东西存在"

比如:

复制代码
opencv.hpp

里面告诉编译器:

cpp 复制代码
class Mat
{
    ...
};

class VideoCapture
{
    ...
};

相当于:说明书

cpp 复制代码
#include <opencv2/opencv.hpp>

就是读说明书。


2. lib 文件(静态链接信息)

例如:

cpp 复制代码
opencv_world4110.lib

作用:

告诉链接器,函数在哪里

比如你写:

复制代码
cv::imshow();

编译器知道:"哦,有这个函数",链接器问:"这个函数代码在哪?"

lib告诉它:

cpp 复制代码
imshow()
在opencv_world4110里面

然后生成:

复制代码
pROJCT.exe

3. dll 文件(运行时真正代码)

例如:这个才是程序运行时需要的。

复制代码
pROJCT.exe

opencv_world4110.dll 里面没有 OpenCV 的全部代码,它只是记录:

cpp 复制代码
我要调用opencv_world4110.dll里的函数

运行时:

Windows:

复制代码
启动 pROJCT.exe

↓

寻找 opencv_world4110.dll

↓

找到

↓

加载

↓

运行

如果找不到:

复制代码
0xC0000135

就是:DLL不存在,程序无法启动。

Windows 找 DLL 有规则。

它会在:

复制代码
1. exe所在目录
2. 系统目录
3. PATH环境变量目录

寻找。以前:

复制代码
D:\pROJCT\cmake-build-debug

    pROJCT.exe

但是:opencv_world4110.dll

在:

复制代码
D:\OpenCV\opencv\build\x64\vc17\bin

Windows:

cpp 复制代码
启动exe

寻找DLL

D:\pROJCT\cmake-build-debug
没有

系统目录
没有

PATH
没有

失败
相关推荐
IvanCodes2 小时前
Python 数据处理(十三):JSON、CSV 与数据序列化
开发语言·python
aramae4 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
qq_2518364576 小时前
springboot vue3 开发实现 拼豆管理系统
java·开发语言·ai编程
郑州光合科技余经理7 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
知识分享小能手7 小时前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
qq_199886877 小时前
第8板块·第2节:统一内存的高级特性与性能调优
c++·人工智能·gpu算力·cuda
+VX:Fegn08958 小时前
计算机毕业设计|基于springboot + vue旅游管理系统(源码+数据库+文档)
java·开发语言·vue.js·spring boot·课程设计
阿里嘎多学长8 小时前
2026-09-20 GitHub 热点项目精选
开发语言·程序员·github·代码托管
2401_839080548 小时前
C++常见八股
数据结构·c++·算法
qq_199886879 小时前
第6板块 第2节 CUDA运行时API与驱动API 核心笔记
c++·人工智能·gpu算力