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

使用CMake FetchContent命令构建OpenCV时遇路径错误求助

问题修复方案

错误原因

问题出在重复配置OpenCV:

  • FetchContent_MakeAvailable(opencv) 已经自动完成OpenCV的下载、配置与构建,并且将opencv_core等目标导入到当前项目中
  • 后续手动设置OpenCV_DIR并调用find_package(OpenCV REQUIRED)属于多余操作,错误的OpenCV_DIR路径让CMake读取了错误的配置信息,最终引发路径错误

修复后的CMakeLists.txt

直接移除多余的set(OpenCV_DIR ...)和find_package(OpenCV REQUIRED)语句即可,修改后的代码如下:

cmake_minimum_required(VERSION 3.8 FATAL_ERROR)

project(TEST_PROJECT)

set(CMAKE_CXX_STANDARD 14)

if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
        cmake_policy(SET CMP0135 NEW)
endif ()

include(FetchContent)

FetchContent_Declare(
        opencv
        GIT_REPOSITORY https://github.com/opencv/opencv.git
        GIT_TAG 4.6.0
        GIT_SHALLOW TRUE
        GIT_PROGRESS TRUE
)
FetchContent_MakeAvailable(opencv)

# 直接使用OpenCV的目标即可,示例:
# add_executable(test_app main.cpp)
# target_link_libraries(test_app PRIVATE opencv_core opencv_highgui)

补充说明

如果需要使用OpenCV的特定组件,无需通过find_package声明,直接在链接目标时指定对应的组件名称(如opencv_imgproc、opencv_imgcodecs)即可,FetchContent已经将这些组件的目标导入到当前项目环境中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:10:25