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

Ubuntu22.10下Qt5集成OpenCV编译报错:找不到Qt5OpenCV配置文件

解决Qt5集成OpenCV的CMake编译错误

错误根源

你把OpenCV当成了Qt的内置组件,在find_package(Qt5)里声明OpenCV组件,CMake自然会去寻找不存在的Qt5OpenCV配置文件——这是完全错误的用法,OpenCV是独立第三方库,需要单独用CMake的find_package指令查找。

修正步骤

  1. 删除无效路径设置:删掉set(CMAKE_PREFIX_PATH "Qt5OpenCV"),这行完全无效还会干扰CMake的路径查找逻辑。
  2. 分离Qt与OpenCV的查找逻辑:从find_package(Qt5)的COMPONENTS列表里移除OpenCV,单独添加find_package(OpenCV REQUIRED)来定位OpenCV库。
  3. 调整链接与包含配置:确保OpenCV的头文件和库文件被正确引入到项目中。

修改后的完整CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(YourProjectName) # 替换为你的实际项目名称

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_PREFIX_PATH "/opt/Qt5.13.0/5.13.0/gcc_64/")

# 仅查找Qt5自带的组件
find_package(Qt5
    COMPONENTS
    Core
    Quick
    REQUIRED)

# 单独查找OpenCV库
find_package(OpenCV REQUIRED)

# 包含OpenCV头文件目录
include_directories(${OpenCV_INCLUDE_DIRS})

add_executable(${PROJECT_NAME} "src/main.cpp" "qml/qml.qrc")

# 链接Qt与OpenCV库
target_link_libraries(${PROJECT_NAME}
    PRIVATE
    Qt5::Core
    Qt5::Quick
    ${OpenCV_LIBS}
    )

# 启用Qt的自动moc/rcc/uic处理(使用Qt元对象系统必须添加)
set_target_properties(${PROJECT_NAME} PROPERTIES
    AUTOMOC ON
    AUTORCC ON
    AUTOUIC ON
)

额外说明

你编译OpenCV时添加的-D WITH_QT=ON,作用是让OpenCV的highgui模块使用Qt作为GUI后端(比如用Qt窗口显示图像),并不是生成供Qt直接调用的Qt5OpenCV组件,因此不需要在Qt的组件列表里声明OpenCV。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:05:22