I'm trying to build a program that requires CUDA. To the CMake script I supply:
cmake -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda ..
CUDA is found and CMake runs normally:
staudt ~/workspace/clutbb/cluster/build $ cmake -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda .. -- Found CUDA: /usr/local/cuda (found version "6.5") -- Found Intel TBB -- Boost version: 1.56.0 -- Found the following Boost libraries: -- iostreams -- program_options -- Looking for include file pthread.h -- Looking for include file pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - not found -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR) -- Configuring done -- Generating done -- Build files have been written to: /home/i11/staudt/workspace/clutbb/cluster/build
But then the linker step fails:
staudt ~/workspace/clutbb/cluster/build $ make [ 69%] Built target cluster Linking CXX executable clu CMakeFiles/clu.dir/clu.cpp.o: In function `initCUDA(int&, CUctx_st*&, int const&)': clu.cpp:(.text+0x517): undefined reference to `cuInit' clu.cpp:(.text+0x52b): undefined reference to `cuDeviceGet' clu.cpp:(.text+0x53f): undefined reference to `cuCtxCreate_v2' clu.cpp:(.text+0x559): undefined reference to `cuDeviceGetName' clu.cpp:(.text+0x55e): undefined reference to `cuCtxSynchronize' CMakeFiles/clu.dir/clu.cpp.o: In function `exitCUDA(int&, CUctx_st*&)': clu.cpp:(.text+0x684): undefined reference to `cuCtxDestroy_v2' CMakeFiles/clu.dir/clu.cpp.o: In function `main': clu.cpp:(.text.startup+0x1092): undefined reference to `cuCtxDestroy_v2' clu.cpp:(.text.startup+0x10d1): undefined reference to `cuCtxSynchronize' clu.cpp:(.text.startup+0x10e1): undefined reference to `cuCtxSynchronize' collect2: error: ld returned 1 exit status make[2]: *** [bin/clu] Fehler 1 make[1]: *** [bin/CMakeFiles/clu.dir/all] Fehler 2 make: *** [all] Fehler 2
The required library is at /usr/local/cuda/lib64/stubs/libcuda.so
, but how can I point that out to cmake or make?