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

QT qmake项目使用OpenCV遇undefined reference错误求助

解决Qt qmake项目中OpenCV 4.9.0链接错误(undefined reference to cv::Mat::Mat())

这个错误属于链接阶段错误,说明编译器能找到OpenCV的头文件(未报头文件找不到的错误),但链接时无法找到cv::Mat构造函数对应的二进制实现。以下是针对性的解决步骤:

1. 匹配OpenCV库的Debug/Release版本

Qt项目的构建模式(Debug/Release)必须和链接的OpenCV库版本严格一致:

  • 若项目是Release模式,链接opencv_world490.lib
  • 若项目是Debug模式,必须链接带d后缀的调试库opencv_world490d.lib

修改.pro文件,用qmake的条件判断自动匹配模式:

INCLUDEPATH += C:/opencv/build/include
LIBS += -LC:/opencv/build/x64/vc16/lib
# Release模式链接Release库
win32:CONFIG(release, debug|release): LIBS += -lopencv_world490
# Debug模式链接Debug库
win32:CONFIG(debug, debug|release): LIBS += -lopencv_world490d

2. 确认OpenCV库文件存在

检查C:/opencv/build/x64/vc16/lib目录下是否有对应库文件:

  • Release模式:opencv_world490.lib、opencv_world490.dll
  • Debug模式:opencv_world490d.lib、opencv_world490d.dll
    如果缺失,说明你下载的OpenCV预编译包不完整,需重新下载对应MSVC2019 x64版本的OpenCV包,或自行编译OpenCV生成对应库。

3. 验证Qt构建套件的架构

确保Qt Creator中选择的构建套件是MSVC 2019 64位,不要误选32位版本:

  1. 打开Qt Creator左侧的「项目」面板
  2. 查看当前使用的构建套件,确认架构为x86_64

4. 清理缓存并重新构建

旧的构建缓存可能导致链接异常,执行以下操作:

  1. 点击Qt Creator顶部菜单「构建」->「清理项目」
  2. 再点击「构建」->「重新构建项目」
  3. 也可手动删除项目目录下的build-xxx文件夹,再重新构建

内容的提问来源于stack exchange,提问作者mjyazdani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:02:10