Could not find a package configuration file provided by “OpenCV“

当使用CMake进行C/C++项目编译,结合OpenCV库时,可能会遇到找不到OpenCVConfig.cmake的问题。解决方法是通过`locate`命令找到OpenCVConfig.cmake的路径,然后在CMakeLists.txt中设置`OpenCV_DIR`为正确路径,例如 `/usr/local/opencv/4.5.1/lib/cmake/opencv4/`。这样可以确保CMake正确找到OpenCV的配置文件并完成编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题1:  cmake 进行 c/c++ 联合opencv编译时出现

  Could not find a package configuration file provided by "OpenCV" with any
  of the following names:

    OpenCVConfig.cmake
    opencv-config.cmake


原始CMakeLists.txt

cmake_minimum_required(VERSION 3.0	FATAL_ERROR)

project(trans)
find_package(OpenCV REQUIRED)

# Print some message showing some of them

message(STATUS "OpenCV library status:")
message(STATUS "    config: ${OpenCV_DIR}")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")

add_executable(Transform Transform.cpp)
target_link_libraries(Transform "${OpenCV_LIBS}")

解决方案:

# locate 全局搜索一下该文件,没有locate可以 apt install locate
>>  locate OpenCVConfig.cmake

搜索结果会出现很多,选择安装路径下对应的OpenCVConfig.cmake 即可。
本文安装了两个版本,选择自己对应的即可。


/usr/local/opencv/3.4.9/share/OpenCV/OpenCVConfig.cmake
/usr/local/opencv/4.5.1/lib/cmake/opencv4/OpenCVConfig.cmake


opencv3 和 opencv4 的OpenCVConfig.cmake位置不一样,请确定自己版本对症用药。

在CMakeLists.txt中用 

set(OpenCV_DIR /usr/local/opencv/4.5.1/lib/cmake/opencv4/)

指定对应的OpenCVConfig.cmake路径即可。

cmake_minimum_required(VERSION 3.0	FATAL_ERROR)

project(trans)
# 指定opencv 对应的OpenCVConfig.cmake 文件目录。 opencv4 不在share目录下。
# 可以用locate OpenCVConfig.cmake 全局搜索下该文件
set(OpenCV_DIR /usr/local/opencv/4.5.1/lib/cmake/opencv4/)
# 这里的OpenCV 会对应查找 OpenCVConfig.cmake 文件
find_package(OpenCV REQUIRED)

# Print some message showing some of them

message(STATUS "OpenCV library status:")
message(STATUS "    config: ${OpenCV_DIR}")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")

add_executable(Transform Transform.cpp)
# target_link_libraries(CrnnEval_batch ${OpenCV_LIBS})
target_link_libraries(Transform "${OpenCV_LIBS}")
# set_property(TARGET lltm PROPERTY CXX_STANDARD 11)

问题2: cmake ncnn + opencv4.x 联合编译demo时出现

运行命令:  cmake -DCMAKE_BUILD_TYPE=Release -DNCNN_VULKAN=ON -DNCNN_BUILD_EXAMPLES=ON ..

CMake Warning at examples/CMakeLists.txt:72 (message):
  OpenCV not found and NCNN_SIMPLEOCV disabled, examples won't be built

修改后命令:

cmake -DCMAKE_BUILD_TYPE=Release -DNCNN_VULKAN=ON -DNCNN_BUILD_EXAMPLES=ON -DOpenCV_DIR=/usr/local/opencv/4.5.1/lib/cmake/opencv4/ ..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值