gpt4 book ai didi

c++ - 基于 cmake 的项目 : checking for contrib modules 中的 OpenCV

转载 作者:太空狗 更新时间:2023-10-29 21:39:03 27 4
gpt4 key购买 nike

我安装了 opencv 3.0(从源代码构建),并将其包含在基于 cmake 的项目中,包含以下内容:

find_package(OpenCV 3.0 REQUIRED)

使用它一切正常,但我还想使用 contrib模块。我在构建 OpenCV 时指定了 OPENCV_EXTRA_MODULES_PATH,我确信这些模块可用(我可以在我的项目中使用它们),但我想禁用没有 contrib 模块的 OpenCV 的这个功能,我。 e.写这样的东西:

#ifdef HAVE_OPENCV_CONTRIB
// some tasty functionality
#else
// some replacement or dummies
#endif

有没有办法在我的 CMakeLists.txt 中确定它而不添加显式定义? IE。我想在我的 CMakeLists.txt 中做这样的事情:

if (DEFINED ${OPENCV_BUILD_WITH_CONTRIB})
add_definitions(-DHAVE_OPENCV_CONTRIB)
endif(DEFINED ${OPENCV_BUILD_WITH_CONTRIB})

可能有一些简单的方法 - 在 find_package(OpenCV) 之后定义任何变量?

最佳答案

现在我发现唯一的方法是通过检查目标系统中的一些 contrib 模块头文件来确定它,即。 e.类似于以下内容:

include(CheckIncludeFileCXX)
check_include_file_cxx(opencv2/face/facerec.hpp HAVE_OPENCV_CONTRIB)
if(HAVE_OPENCV_CONTRIB)
add_definitions(-DHAVE_OPENCV_CONTRIB)
endif(HAVE_OPENCV_CONTRIB)

关于c++ - 基于 cmake 的项目 : checking for contrib modules 中的 OpenCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33880515/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com