错误:cuda_runtime.h:没有这样的文件或目录

skr*_*der 16 c gcc cuda nvcc

如何强制gcc在/ usr/cuda/local/include中查找cuda_runtime.h?

我正在尝试使用C包装器编译CUDA应用程序.我正在运行Ubuntu 10.04.

我已使用以下命令成功将我的CUDA应用程序编译为.so:

nvcc -arch=sm_11 -o libtest.so --shared -Xcompiler -fPIC main.cu
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下命令编译我的c包装器文件时:

gcc -std=c99 -o main -L. -ltest main.c
Run Code Online (Sandbox Code Playgroud)

我收到错误:

error: cuda_runtime.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我已经验证了cuda_runtime.h实际上存在于/ usr/local/cuda/include中

Yam*_*eko 12

我们正在使用CMake,但它仍然无法找到头文件(可能是CMake版本找不到目录./targets/x86_64-linux/include或者因为我们有多个CUDA版本)。为我们设置CPATH并修复它:LD_LIBRARY_PATH

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
Run Code Online (Sandbox Code Playgroud)


skr*_*der 10

使用-I开关允许gcc查找cuda_runtime.h文件:

gcc -std=c99 -I/usr/local/cuda/include -o main -L. -ltest main.c
Run Code Online (Sandbox Code Playgroud)


Ale*_*nen 5

如果您使用的是CMake

find_package(CUDA  REQUIRED)
include_directories("${CUDA_INCLUDE_DIRS}")
Run Code Online (Sandbox Code Playgroud)