使用CMake查找软件包OpenCV

9gm1akwq  于 2023-10-20  发布在  其他
关注(0)|答案(2)|浏览(108)

我做了如下工作:
我已经将OpenCV_ROOT变量设置为我的构建路径设置为$(OPENCV_ROOT)/build/x86/vc 11/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

怎样才能走上正确的道路?

6ju8rftf

6ju8rftf1#

我从源代码构建了OpenCV,以确保所有的变量和选项都被正确设置。为了便于解释,我们假设您的CMAKE_MAKALL_PREFIX设置为C:/opencv/..这就是你的OpenCV_CV变量应该指向的地方。
在你的系统环境路径中,添加C:/opencv/bin/(只是为了让你计算机上的所有登录示例都可以访问它,并且根据我的经验,也让VS更容易识别它)到PATH变量中。请确保您构建了项目的调试和发布版本,并为这两个版本构建了PRACTALL项目。
希望这对你有帮助。
旁注:为了方便路径编辑,我使用了一个名为RapidEE的免费软件

dgsult0t

dgsult0t2#

我最近正在努力编译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

相关问题