QT Creator : undefined reference to `cv::VideoCapture::VideoCapture(int)‘

本文详细介绍了如何解决在使用Qt编译OpenCV项目时遇到的undefined reference to `cv::VideoCapture::VideoCapture(int)`错误。通过定位到cmark编译的OpenCV输出文件夹,并在.pro文件中添加特定的库路径,成功解决了编译链接问题。

undefined reference to `cv::VideoCapture::VideoCapture(int)’

  1. 找到cmark编译opencv的输出文件夹,我的是buildQT
  2. 在.pro文件夹后添加:
    LIBS += D:\qt_opencv_config\opencv3.4.0\buildQT\bin\libopencv_shape340.dll
    LIBS += D:\qt_opencv_config\opencv3.4.0\buildQT\bin\libopencv_videoio340.dll
### 解决方案 在处理 `cv::VideoCapture` 构造函数的链接错误时,通常是因为编译器无法找到所需的库文件。这可能是由于配置不正确或者缺少必要的依赖项。 当遇到 `undefined reference to cv::VideoCapture::VideoCapture()` 错误时,可以尝试以下方法来解决问题: #### 配置CMakeLists.txt 确保项目中的 CMake 文件已经正确指定了 OpenCV 库的位置以及版本信息。如果使用的是 Qt Creator 或其他 IDE,则需要确认这些设置已同步到项目的构建选项中[^1]。 ```cmake find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) target_link_libraries(your_project_name ${OpenCV_LIBS}) ``` 对于特定于视频捕获模块的支持,还需要显式添加 opencv_videoio 组件: ```cmake find_package(OpenCV COMPONENTS core imgproc videoio REQUIRED) ``` #### 修改.pro文件 如果是通过 qmake 进行管理的话,在 .pro 文件里加入如下语句以引入 OpenCV 的库路径和头文件目录: ```qmake INCLUDEPATH += /path/to/opencv/include \ LIBS += -L/path/to/opencv/lib \ -L$(OPENCV_DIR)/lib \ -lopencv_core \ -lopencv_imgcodecs \ -lopencv_highgui \ -lopencv_videoio ``` 请注意替换 `/path/to/opencv/*` 为实际安装位置,并根据操作系统调整分隔符(Windows 使用`;`, Linux/macOS 使用`:`)。 另外,考虑到之前提到过的 IPPICV 下载失败问题,建议先验证本地环境中是否存在完整的 OpenCV 安装包及其所有必需组件。如果有任何缺失或损坏的情况发生,请重新下载并解压官方发布的预编译二进制版或是按照文档说明自行编译源码。 最后提醒一点,务必保持使用的 OpenCV 和 Qt 版本兼容性良好,以免因 API 变更等原因引发更多不必要的麻烦。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值