我正在使用opencv與另一個庫。所以我想編譯一個類,如果OpenCV有CUDA。 我需要在Cmake文件中實現這個功能。但我找不到任何變量,告訴OpenCV 是否具有CUDA。如何在CMAKE文件中查找OpenCV是否與CUDA一起編譯
FindOpenCV.cmake定義這些變量
OpenCV_FOUND OpenCV_LIBS OpenCV_INCLUDE_DIR OpenCV_VERSION
現在我怎麼可以找出OpenCV的編譯與CUDA或者無法從這個cmake的文件嗎?
我正在使用opencv與另一個庫。所以我想編譯一個類,如果OpenCV有CUDA。 我需要在Cmake文件中實現這個功能。但我找不到任何變量,告訴OpenCV 是否具有CUDA。如何在CMAKE文件中查找OpenCV是否與CUDA一起編譯
FindOpenCV.cmake定義這些變量
OpenCV_FOUND OpenCV_LIBS OpenCV_INCLUDE_DIR OpenCV_VERSION
現在我怎麼可以找出OpenCV的編譯與CUDA或者無法從這個cmake的文件嗎?
這裏是CMake的變量列表,可以幫助你:
OpenCV_COMPUTE_CAPABILITIES
- 從OpenCV中已編制計算能力,可以被添加到NVCC標誌。
list(APPEND CUDA_NVCC_FLAGS ${OpenCV_COMPUTE_CAPABILITIES})
OpenCV_CUDA_VERSION
- 這是用於構建OpenCV的,如果OpenCV的未經CUDA支持內置CUDA工具包版本,該變量爲空。您可以檢查這個變量:
if(OpenCV_CUDA_VERSION)
# Have CUDA support
endif()
OpenCV_USE_CUBLAS
- 如果爲true的OpenCV與CUBLAS內置支持
OpenCV_USE_CUFFT
- 如果OpenCV的與CUFFT支持內置
OpenCV_USE_NVCUVID
- 如果OpenCV的與NVCUVID建支持
感謝您的幫助。對於像我這樣的新手來說真的很有幫助 –
從[OpenCVConfig.cmake.in](https://github.com/Itseez/opencv/blob/master/cmake/templates/OpenCVConfig.cmake.in#L223),它看起來像你可以嘗試使用'如果(CUDA_FOUND)'。但是,如果這個變量沒有被OpenCV記錄下來,你可能會冒着在未來版本的OpenCV中重命名或刪除這個變量的風險。 – Fraser
感謝您的幫助。 –