公司动态

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

📅 2026/8/11 17:21:36
Windows C++ 第三方库使用流程备忘录--OpenCV
目录三个东西头文件、lib、dll 分别是什么1. 头文件.h / .hpp2. lib 文件静态链接信息3. dll 文件运行时真正代码Windows 找 DLL 有规则。写一个 C 程序用 OpenCV 打开摄像头。实际上做了三件事你的代码 ↓ C编译器 ↓ 生成exe ↓ Windows运行中间涉及三个阶段1. 编译阶段 2. 链接阶段 3. 运行阶段三个东西头文件、lib、dll 分别是什么#include opencv2/opencv.hpp cv::Mat img;程序需要 OpenCV,但是编译器不知道cv::Mat 到底是什么所以需要1. 头文件.h / .hpp作用告诉编译器“这个东西存在”比如opencv.hpp里面告诉编译器class Mat { ... }; class VideoCapture { ... };相当于说明书#include opencv2/opencv.hpp就是读说明书。2. lib 文件静态链接信息例如opencv_world4110.lib作用告诉链接器函数在哪里比如你写cv::imshow();编译器知道哦有这个函数链接器问这个函数代码在哪lib告诉它imshow() 在opencv_world4110里面然后生成pROJCT.exe3. dll 文件运行时真正代码例如这个才是程序运行时需要的。pROJCT.exeopencv_world4110.dll 里面没有 OpenCV 的全部代码它只是记录我要调用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\binWindows启动exe 寻找DLL D:\pROJCT\cmake-build-debug 没有 系统目录 没有 PATH 没有 失败