Hello everybody ;)
I updated my version of CUDA (3.0 to 3.1) and when I compile my source code, I obtain this error :
/usr/include/surface_functions.h: In function ‘void surf1Dread(T*, surface<void, 1>, int, int, cudaSurfaceBoundaryMode)’:
/usr/include/surface_functions.h:100:95: erreur: there are no arguments to ‘__surf1Dreadc1’ that depend on a template parameter, so a declaration of ‘__surf1Dreadc1’ must be available
/usr/include/surface_functions.h:100:95: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/usr/include/surface_functions.h:101:96: erreur: there are no arguments to ‘__surf1Dreads1’ that depend on a template parameter, so a declaration of ‘__surf1Dreads1’ must be available
/usr/include/surface_functions.h:102:94: erreur: there are no arguments to ‘__surf1Dreadu1’ that depend on a template parameter, so a declaration of ‘__surf1Dreadu1’ must be available
/usr/include/surface_functions.h:103:94: erreur: there are no arguments to ‘__surf1Dreadu2’ that depend on a template parameter, so a declaration of ‘__surf1Dreadu2’ must be available
/usr/include/surface_functions.h:104:95: erreur: there are no arguments to ‘__surf1Dreadu4’ that depend on a template parameter, so a declaration of ‘__surf1Dreadu4’ must be available
/usr/include/surface_functions.h: In function ‘void surf2Dread(T*, surface<void, 2>, int, int, int, cudaSurfaceBoundaryMode)’:
/usr/include/surface_functions.h:460:98: erreur: there are no arguments to ‘__surf2Dreadc1’ that depend on a template parameter, so a declaration of ‘__surf2Dreadc1’ must be available
/usr/include/surface_functions.h:461:99: erreur: there are no arguments to ‘__surf2Dreads1’ that depend on a template parameter, so a declaration of ‘__surf2Dreads1’ must be available
/usr/include/surface_functions.h:462:97: erreur: there are no arguments to ‘__surf2Dreadu1’ that depend on a template parameter, so a declaration of ‘__surf2Dreadu1’ must be available
/usr/include/surface_functions.h:463:97: erreur: there are no arguments to ‘__surf2Dreadu2’ that depend on a template parameter, so a declaration of ‘__surf2Dreadu2’ must be available
/usr/include/surface_functions.h:464:98: erreur: there are no arguments to ‘__surf2Dreadu4’ that depend on a template parameter, so a declaration of ‘__surf2Dreadu4’ must be available
I don’t understand why I obtained this error, any ideas ?
I use CMake to compile my project, so here is the code CMake if you have suggestions :
cmake_minimum_required( VERSION 2.8 )
project( Volume_Render )
set(EXECUTABLE_OUTPUT_PATH bin/)
set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
find_package( CUDA REQUIRED )
find_package( GLEW REQUIRED )
find_package( GLUT REQUIRED )
set( CUDA_VERBOSE_BUILD ON )
set( CUDA_PROPAGATE_HOST_FLAGS OFF )
set( CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE OFF )
set( CUDA_BUILD_EMULATION OFF )
#set( CUDA_NVCC_FLAGS )
ADD_DEFINITIONS(-Wall -Wextra -ansi -O2 -Wwrite-strings -Wuninitialized -Wunreachable-code -Wno-missing-braces -Wno-missing-field-initializers)
include_directories (
headers
${GLEW_INCLUDE_PATH}
${GLUT_INCLUDE_DIR}
)
file(
GLOB_RECURSE
source_files
./src/*.cpp
)
file(
GLOB_RECURSE
cuda_files
./kernels/*.cu
)
CUDA_ADD_EXECUTABLE (
Volume_Render
${source_files}
${cuda_files}
)
target_link_libraries (
Volume_Render
${GLEW_LIBRARY}
${GLUT_LIBRARIES}
)
CUDA_BUILD_CLEAN_TARGET()
Thank you for your help.