【发布时间】:2015-06-01 06:13:42
【问题描述】:
我是 opencv 和 CMake 的新手。我有一个 .cpp 文件,它将给定的图像预处理成主机和设备上的一对 uchar 或 uint8 数组。第一个数组包含原始图像值强度(在主机和设备上)。第二个数组包含在设备上执行的简单反转(255 像素值),然后复制到设备上。
我编写了 CMakefile 来查找 cuda 可执行文件并链接到主 cpp 文件。但是我收到一个错误,其中找不到“main”函数。错误类似于relocation 0 has invalid symbol index 11
cmake_minimum_required(VERSION 2.8)
project( preProcess )
find_package( OpenCV REQUIRED )
find_package(CUDA REQUIRED)
include(FindCUDA)
include_directories(/usr/local/cuda/include)
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -gencode arch=compute_30,code=sm_30)
file( GLOB cu *.cu)
add_executable( preProcess preProc.cpp )
CUDA_ADD_EXECUTABLE(test ${preProcess} ${cu})
target_link_libraries(preProcess /usr/local/cuda/lib64/libcudart.so ${OpenCV_LIBS} )
当我检查我的 Makefile 时,没有 nvcc 命令。如果您能指导我如何为包含 cpp 文件和 cu 文件的项目创建 CMakeLists.txt 文件并将它们链接在一起或详细说明我在 CMakeLists 文件中做错了什么,那就太好了。
(我正在使用带有 CUDA 7 和 opencv 2.4.11 的 Ubuntu 14.04)
【问题讨论】: