You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++使用OpenCV时出现undefined reference及头文件找不到错误如何解决

问题原因及解决方案

错误本质说明

  • 第一次的「未定义引用」报错:你只配置了头文件搜索路径,没有链接OpenCV对应的功能库。C++编译分为编译、链接两个阶段,头文件仅提供函数声明,链接阶段需要加载对应库文件中的函数实现才能正常编译。
  • 第二次的「文件不存在」报错:OpenCV内部头文件的相对路径都是以opencv2/为根目录编写的,你修改头文件引入写法后没有给编译器指定/usr/include/opencv4作为头文件搜索根目录,编译器找不到内部引用的opencv2/core.hpp文件。

正确操作步骤

  1. 首先确认你已经安装了完整的OpenCV开发依赖,Debian/Ubuntu系系统可执行以下命令安装:
sudo apt install libopencv-dev pkg-config
  1. 头文件改回最初的写法,不要加opencv4/前缀:
#include <opencv2/objdetect.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/videoio.hpp>
#include <iostream>

int main() {
  cv::CascadeClassifier eye_detection;
  return 1;
}
  1. 编译命令使用pkg-config自动加载头文件路径和链接参数,避免手动配置出错:
g++ main.cpp -o main $(pkg-config --cflags --libs opencv4)

如果你的系统不想安装pkg-config,也可以手动补全链接参数:

g++ main.cpp -I/usr/include/opencv4 -lopencv_objdetect -lopencv_highgui -lopencv_imgproc -lopencv_videoio -lopencv_core

编译完成后执行./main即可运行程序。

内容的提问来源于stack exchange,提问作者saviu-u

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 02:45:02