使用 CMake 查找包 OpenCV

Finding package OpenCV with CMake

本文关键字:OpenCV 查找 CMake 使用      更新时间:2023-10-16

我已经做了如下的事情:

我已经将OpenCV_DIR变量设置为我的构建路径设置为 $(OPENCV_ROOT)/build/x86/vc11/lib。

在我的CMakeLists中.txt我调用find_package函数:

find_package( OpenCV REQUIRED )

应该设置一些连接到 OpenCV 的变量,但它们设置不正确。 例如,OpenCV_INCLUDE_DIRS应设置为

$(OPENCV_ROOT)/build/include 

$(OPENCV_ROOT)/include 

但取而代之的是它设置为

$(OPENCV_ROOT)/build/x86/vc11/lib/include;$(OPENCV_ROOT)/x86/vc11/lib/include/opencv

如何才能找到正确的道路?

我从源代码构建了OpenCV,以确保所有变量和选项都设置正确。为了解释,假设您的CMAKE_INSTALL_PREFIX设置为 C:/opencv/.。这是您的OpenCV_DIR变量应该指向的地方。

在您的系统环境路径中,将 C:/opencv/bin/ 添加到 PATH 变量中(只是为了让您的计算机中的所有登录实例都可以访问它,并且还可以让 VS 以后更容易识别它)。确保同时生成项目的调试版本和发布版本,并为两者生成 INSTALL 项目。

希望这有帮助。

旁注:为了方便路径编辑,我使用了一个名为RapidEE的免费软件

我最近在努力编译 OpenCV,以获得所需的最小模块,然后自动将其包含在我的项目中。我最终以以下方式使用它:

CMakeLists.txt:

find_package(OpenCV CONFIG REQUIRED PATHS <path to the install dir>) 
target_link_directories(<target> PUBLIC
    ${OpenCV_LIB_DIRS}
    )
target_link_libraries(<target> 
    ${OpenCV_LIBS}
    )
target_include_directories(<target> PUBLIC
    ${OpenCV_INCLUDE_DIRS}
    )

使用 cmake 3.16
OpenCV 4.x