You need to enable JavaScript to run this app. Windows下源码编译OpenCV的CMake识别及运行报错问题求解
优惠活动
大模型
产品
解决方案
定价
更多

Windows下源码编译OpenCV的CMake识别及运行报错问题求解

Windows下源码编译OpenCV后的CMake配置与运行报错解决方案

一、CMake无法识别OpenCV的问题解决

错误原因

你先后遇到的两个CMake报错都是参数使用错误导致:

  1. 初始找不到OpenCVConfig.cmake是因为没有给CMake指定你本地编译的OpenCV的配置文件路径
  2. 后续指定路径后仍然报错,是因为find_package指令中用于指定搜索路径的参数是复数PATHS,你误用了单数PATH,该参数会被CMake识别为匹配条件而非搜索路径,导致路径解析错误。

正确配置方式

两种方式二选一即可:

  • 方式1:直接修改CMakeLists.txt,使用正确的PATHS参数
find_package(OpenCV REQUIRED PATHS C:/Users/theuser/Path/To/MyOpenCVInstallation/build/install/x64/vc16/lib)
  • 方式2:无需修改CMakeLists.txt,执行cmake指令时传入路径参数
cmake .. -DOpenCV_DIR=C:/Users/theuser/Path/To/MyOpenCVInstallation/build/install/x64/vc16/lib

注意:指定的路径下必须存在OpenCVConfig.cmake文件,你选择的编译安装后的x64/vc16/lib路径是符合要求的。

二、运行时报错0xc0000135的问题解决

错误原因

Windows下错误码0xc0000135的含义是程序运行时找不到依赖的动态链接库(DLL),你的场景下就是程序无法找到OpenCV的相关DLL文件。

解决方案

三种方法任选其一即可:

  • 方法1:配置系统环境变量
    将OpenCV安装目录下的bin路径C:/Users/theuser/Path/To/MyOpenCVInstallation/build/install/x64/vc16/bin添加到系统或用户的Path环境变量中,配置完成后重启VSCode让环境变量生效,再运行程序即可。
  • 方法2:手动拷贝DLL到输出目录
    将上述bin路径下所有用到的opencv_*.dll文件,拷贝到你生成的exe所在目录(一般是build/Debug或build/Release目录),程序运行时会自动检索同目录下的DLL。
  • 方法3:CMake自动拷贝DLL
    在CMakeLists.txt末尾添加如下逻辑,每次编译完成后会自动将OpenCV的DLL拷贝到exe输出目录,无需手动操作:
if(WIN32)
    file(GLOB OPENCV_DLLS "${OpenCV_DIR}/../bin/*.dll")
    add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E copy_if_different
        ${OPENCV_DLLS}
        $<TARGET_FILE_DIR:${PROJECT_NAME}>)
endif()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 10:27:04