如何在 CMAKE 文件中查找 OpenCV 是否使用 CUDA 编译

saj*_*min 1 opencv cmake

我正在将 opencv 与另一个库一起使用。所以如果 OpenCV 有 CUDA,我想编译一个类。我需要在 Cmake 文件中实现这一点。但我找不到任何变量来告诉 OpenCV 是否有 CUDA。

FindOpenCV.cmake定义了这些变量

OpenCV_FOUND OpenCV_LIBS OpenCV_INCLUDE_DIR OpenCV_VERSION

现在我如何从这个 cmake 文件中知道 OpenCV 是否是用 CUDA 编译的?

jet*_*t47 6

以下是可以帮助您的 CMake 变量列表:

OpenCV_COMPUTE_CAPABILITIES- 编译 OpenCV 的计算能力可以添加到 nvcc 标志中。

list(APPEND CUDA_NVCC_FLAGS ${OpenCV_COMPUTE_CAPABILITIES})
Run Code Online (Sandbox Code Playgroud)

OpenCV_CUDA_VERSION- 用于构建 OpenCV 的 CUDA 工具包版本,如果 OpenCV 是在没有 CUDA 支持的情况下构建的,则该变量为空。您可以检查这个变量:

if(OpenCV_CUDA_VERSION)
    # Have CUDA support
endif()
Run Code Online (Sandbox Code Playgroud)

OpenCV_USE_CUBLAS- 如果 OpenCV 是使用 CUBLAS 支持构建的,则为 true

OpenCV_USE_CUFFT- 如果 OpenCV 是使用 CUFFT 支持构建的,则为 true

OpenCV_USE_NVCUVID- 如果 OpenCV 是使用 NVCUVID 支持构建的,则为 true