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

时间:2012-10-31 21:19:27

标签: c gcc cuda nvcc

如何强制gcc查看cuda_runtime.h的/ usr / cuda / local / include?

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

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

nvcc -arch=sm_11 -o libtest.so --shared -Xcompiler -fPIC main.cu

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

gcc -std=c99 -o main -L. -ltest main.c

我收到错误:

error: cuda_runtime.h: No such file or directory

我已经确认cuda_runtime.h实际上存在于/ usr / local / cuda / include

4 个答案:

答案 0 :(得分:10)

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

gcc -std=c99 -I/usr/local/cuda/include -o main -L. -ltest main.c

答案 1 :(得分:4)

如果您使用的是CMake

find_package(CUDA  REQUIRED)
include_directories("${CUDA_INCLUDE_DIRS}")

答案 2 :(得分:0)

在flags.make文件中的CXX_INCLUDES中添加-isystem /usr/local/cuda-8.0/include

答案 3 :(得分:0)

我们正在使用CMake,但是它仍然找不到头文件(也许是CMake版本找不到目录./targets/x86_64-linux/include,或者因为我们有多个CUDA版本)。设置CPATHLD_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