2013-08-22 49 views
1

我正在使用opencv與另一個庫。所以我想編譯一個類,如果OpenCV有CUDA。 我需要在Cmake文件中實現這個功能。但我找不到任何變量,告訴OpenCV 是否具有CUDA。如何在CMAKE文件中查找OpenCV是否與CUDA一起編譯

FindOpenCV.cmake定義這些變量

OpenCV_FOUND OpenCV_LIBS OpenCV_INCLUDE_DIR OpenCV_VERSION

現在我怎麼可以找出OpenCV的編譯與CUDA或者無法從這個cmake的文件嗎?

+0

從[OpenCVConfig.cmake.in](https://github.com/Itseez/opencv/blob/master/cmake/templates/OpenCVConfig.cmake.in#L223),它看起來像你可以嘗試使用'如果(CUDA_FOUND)'。但是,如果這個變量沒有被OpenCV記錄下來,你可能會冒着在未來版本的OpenCV中重命名或刪除這個變量的風險。 – Fraser

+0

感謝您的幫助。 –

回答

4

這裏是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建支持

+0

感謝您的幫助。對於像我這樣的新手來說真的很有幫助 –