Ubuntu下通过CMake文件编译CUDA+OpenCV代码操作步骤
生活随笔
收集整理的這篇文章主要介紹了
Ubuntu下通过CMake文件编译CUDA+OpenCV代码操作步骤
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在?CUDA_Test? 工程中,CUDA測試代碼之前僅支持在Windows10 + VS2013編譯,今天在Ubuntu 14.04下寫了一個CMakeLists.txt文件,支持在Linux下也可以通過CMake編譯CUDA_Test工程,CMakeLists.txt文件內容如下:
# CMake file for CUDA_Test# 設定依賴的CMake版本
CMAKE_MINIMUM_REQUIRED(VERSION 3.2)
# 指定項目名稱
PROJECT(CUDA_Test)# 搜索指定的OpenCV外部依賴庫頭文件和庫文件位置
FIND_PACKAGE(OpenCV 2)
# 搜索指定的CUDA外部依賴庫頭文件和庫文件位置
FIND_PACKAGE(CUDA)# 打印相關信息, CMAKE_CURRENT_SOURCE_DIR指的是當前處理的CMakeLists.txt所在的路徑
MESSAGE(STATUS "current path: ${CMAKE_CURRENT_SOURCE_DIR}")# 定義用戶自定義變量
SET(PATH_CPP_FILES ./../../demo/CUDA_Test)
#MESSAGE(STATUS "cpp files path: ${PATH_CPP_FILES}")
SET(PATH_CU_FILES ./../../demo/CUDA_Test)# 遞歸查詢所有匹配的文件:*.cpp和*.cu
FILE(GLOB_RECURSE CPP_LIST ${PATH_CPP_FILES}/*.cpp)
FILE(GLOB_RECURSE CU_LIST ${PATH_CU_FILES}/*.cu)
#MESSAGE(STATUS "cpp list: ${CPP_LIST}")
#MESSAGE(STATUS "cu list: ${CU_LIST}")# 使CMake支持C++11特性
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu++0x")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")# 指定CUDA頭文件的搜索路徑
INCLUDE_DIRECTORIES(/usr/local/cuda-8.0/include)
# 指定OpenCV頭文件搜索路徑
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
#MESSAGE(STATUS "opencv include directory: ${OpenCV_INCLUDE_DIRS}")# 使CUDA NVCC 編譯器支持C++11特性
LIST(APPEND CUDA_NVCC_FLAGS -std=c++11;-O2)
LIST(APPEND CUDA_NVCC_FLAGS -Xcompiler;-fPIC)SET(CUDA_PROPAGATE_HOST_FLAGS OFF)LIST(APPEND CUDA_NVCC_FLAGS -gencode arch=compute_50,code=sm_50)
LIST(APPEND CUDA_NVCC_FLAGS -gencode arch=compute_60,code=sm_60)# 編譯可執行程序,即生成可執行文件CUDA_Test
#ADD_EXECUTABLE(CUDA_Test ${CPP_LIST} ${CU_LIST}) # 不包括編譯*.cu文件,需要使用CUDA_ADD_EXECUTABLE命令
CUDA_ADD_EXECUTABLE(CUDA_Test ${CPP_LIST} ${CU_LIST})
# 用來為target添加需要鏈接的共享庫,指定工程所用的依賴庫,包括動態庫和靜態庫
TARGET_LINK_LIBRARIES(CUDA_Test ${OpenCV_LIBS})
#MESSAGE(STATUS "opencv libs: ${OpenCV_LIBS}")MESSAGE(STATUS "**************************************")
操作步驟(prj/linux_cmake/ReadMe.txt)如下:
在Linux下通過CMake編譯CUDA_Test中的測試代碼步驟:
1. 將終端定位到CUDA_Test/prj/linux_cmake,依次執行如下命令:$ mkdir build$ cd build$ cmake ..$ make (生成CUDA_Test執行文件)$ ./CUDA_Test
2. 對于有需要用OpenCV參與的讀取圖像的操作,需要先將對應文件中的圖像路徑修改為Linux支持的路徑格式
GitHub:? https://github.com/fengbingchun/CUDA_Test
總結
以上是生活随笔為你收集整理的Ubuntu下通过CMake文件编译CUDA+OpenCV代码操作步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CUDA Samples: approx
- 下一篇: tmux简介及安装