日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Ubuntu下通过CMake文件编译CUDA+OpenCV代码操作步骤

發(fā)布時(shí)間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ubuntu下通过CMake文件编译CUDA+OpenCV代码操作步骤 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在?CUDA_Test? 工程中,CUDA測試代碼之前僅支持在Windows10 + VS2013編譯,今天在Ubuntu 14.04下寫了一個(gè)CMakeLists.txt文件,支持在Linux下也可以通過CMake編譯CUDA_Test工程,CMakeLists.txt文件內(nèi)容如下:

# CMake file for CUDA_Test# 設(shè)定依賴的CMake版本
CMAKE_MINIMUM_REQUIRED(VERSION 3.2)
# 指定項(xiàng)目名稱
PROJECT(CUDA_Test)# 搜索指定的OpenCV外部依賴庫頭文件和庫文件位置
FIND_PACKAGE(OpenCV 2)
# 搜索指定的CUDA外部依賴庫頭文件和庫文件位置
FIND_PACKAGE(CUDA)# 打印相關(guān)信息, CMAKE_CURRENT_SOURCE_DIR指的是當(dāng)前處理的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)# 編譯可執(zhí)行程序,即生成可執(zhí)行文件CUDA_Test
#ADD_EXECUTABLE(CUDA_Test ${CPP_LIST} ${CU_LIST}) # 不包括編譯*.cu文件,需要使用CUDA_ADD_EXECUTABLE命令
CUDA_ADD_EXECUTABLE(CUDA_Test ${CPP_LIST} ${CU_LIST})
# 用來為target添加需要鏈接的共享庫,指定工程所用的依賴庫,包括動(dòng)態(tài)庫和靜態(tài)庫
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,依次執(zhí)行如下命令:$ mkdir build$ cd build$ cmake ..$ make (生成CUDA_Test執(zhí)行文件)$ ./CUDA_Test
2. 對(duì)于有需要用OpenCV參與的讀取圖像的操作,需要先將對(duì)應(yīng)文件中的圖像路徑修改為Linux支持的路徑格式

GitHub:? https://github.com/fengbingchun/CUDA_Test

總結(jié)

以上是生活随笔為你收集整理的Ubuntu下通过CMake文件编译CUDA+OpenCV代码操作步骤的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。