error: cuda_runtime.h: No such file or directory
Solution 1
If you are using CMake
find_package(CUDA REQUIRED)
include_directories("${CUDA_INCLUDE_DIRS}")
Solution 2
Using an -I switch allowed gcc to find the cuda_runtime.h file:
gcc -std=c99 -I/usr/local/cuda/include -o main -L. -ltest main.c
Solution 3
We were using CMake but it still wasn't able to find the header files (maybe it is the CMake version that couldn't find the directory ./targets/x86_64-linux/include
or because we have multiple CUDA versions). Setting CPATH
and LD_LIBRARY_PATH
fixed it for us:
export CPATH=/usr/local/cuda-10.1/targets/x86_64-linux/include:$CPATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/targets/x86_64-linux/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.1/bin:$PATH
Related videos on Youtube
skrieder
Updated on July 05, 2022Comments
-
skrieder almost 2 years
How can I force gcc to look in /usr/cuda/local/include for cuda_runtime.h?
I'm attempting to compile a CUDA application with a C wrapper. I'm running Ubuntu 10.04.
I've successfully compiled my CUDA application into a .so with the following command:
nvcc -arch=sm_11 -o libtest.so --shared -Xcompiler -fPIC main.cu
When I try and compile my c wrapper file with the following command:
gcc -std=c99 -o main -L. -ltest main.c
I receive the error:
error: cuda_runtime.h: No such file or directory
I've verified that cuda_runtime.h is in fact present in /usr/local/cuda/include
-
Robert Crovella over 11 yearsI assume you mean /usr/local/cuda/include. Did you try adding a -I switch to your gcc command line? For example: gcc -std=c99 -I/usr/local/cuda/include -o main -L. -ltest main.c
-
Robert Crovella over 11 yearsIf you wouldn't mind, please post it as an answer to your question. Then accept it or I will upvote the answer. Thank you.
-