OpenCV程式設計中呼叫CUDA時,CMakeLists的編寫
阿新 • • 發佈:2019-02-17
在做OpenCV呼叫CUDA時,發現寫好的程式不知道怎麼進行編譯。
用原來的CMakeLists無法編譯.cu檔案,後來找到一個帖子,測試可以進行CPP檔案呼叫CUDA的編譯執行。
但由於沒有呼叫OpenCV,用在我的程式中出現部分函式為定義的情況,故對該CMakeLists進行修改後,成功執行我的OpenCV程式。
下面是我的目錄結構和CMakeLists.txt檔案
目錄結構:
- orb-slam
– build(編譯檔案)
– include(標頭檔案)
– res(測試圖片)
– src(原始檔)
CMakeLists.txt檔案:
CMAKE_MINIMUM_REQUIRED (VERSION 2.8)
PROJECT(orb-slam)
INCLUDE(/usr/share/cmake-3.5/Modules/FindCUDA.cmake)#根據自己的安裝位置替換
INCLUDE_DIRECTORIES(include)
FIND_PACKAGE(CUDA)
FIND_PACKAGE(OpenCV REQUIRED)
SET(CUDA_NVCC_FLAGS -gencode arch=compute_53,code=sm_53)#根據自己的顯示卡效能配置
CUDA_ADD_EXECUTABLE(main
src/main.cpp
src/ORB_GPU.cpp
src/ORB_GPU_kernel.cu
src/ORBextractor.cpp)
TARGET_LINK_LIBRARIES (main ${OpenCV_LIBS})#連結OpenCV庫