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

使用VCPKG清单模式时CMake无法找到OpenCV的原因

问题:VCPKG构建OpenCV后CMake无法找到它

用户配置文件

CMakeLists.txt

cmake_minimum_required(VERSION 3.24)

File(TO_CMAKE_PATH $ENV{VCPKG_ROOT} VCPKG_ROOT)
message(STATUS ${VCPKG_ROOT})
set(CMAKE_TOOLCHAIN_FILE "${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "")
set(VCPKG_TARGET_TRIPLET "x64-windows-static" CACHE STRING "")

project(my_project)


find_package(OpenCV REQUIRED)

set(INCLUDE_DIR "src/include" )  
include_directories(${INCLUDE_DIR})

# Set C++ standard to 20
set(CMAKE_CXX_STANDARD 20)

file(GLOB_RECURSE  INCLUDE_FILES  "src/include/*.h" "src/include/*.hpp") 


add_executable(ReadSample "src/readsample/main.cpp" ${INCLUDE_FILES})
set_property(TARGET ReadSample PROPERTY
             MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<$<CONFIG:Debug>:Debug>")
# Include directories for header files
target_link_libraries(ReadSample ${OpenCV_LIBS})

vcpkg.json

{
    "version": "1.0.0",
    "dependencies": [
        {
            "name": "opencv",
            "features": [
                "ffmpeg"
      ]
    }
    ]
}

错误信息

D:/Local/vcpkg/scripts/buildsystems/vcpkg.cmake:859 (_find_package)
CMakeLists.txt:11 (find_package)

可能的原因及解决步骤

  • 工具链文件设置方式错误:CMake要求CMAKE_TOOLCHAIN_FILE必须在project()命令前生效,代码中用CACHE STRING会导致首次配置时可能无法正确加载工具链。修改为直接设置,去掉缓存声明:

    set(CMAKE_TOOLCHAIN_FILE "${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake")
    
  • 目标三元组不匹配:确认vcpkg已安装对应三元组的OpenCV,手动执行命令:

    vcpkg install opencv[ffmpeg]:x64-windows-static
    

    确保安装过程无报错。

  • 构建缓存干扰:删除现有构建目录,重新运行CMake并手动指定参数,避免缓存残留:

    # 手动删除build文件夹,或执行命令
    rm -rf build
    cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=D:/Local/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static
    
  • VCPKG_ROOT路径验证:确认环境变量VCPKG_ROOT路径正确,可修改message语句输出更明确的信息:

    message(STATUS "VCPKG_ROOT path: ${VCPKG_ROOT}")
    

    若输出为空或路径错误,需检查系统环境变量配置。

  • 包名大小写排查:部分环境下CMake对包名大小写敏感,尝试修改为小写:

    find_package(opencv REQUIRED)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 03:39:56