18

如何强制 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

当我尝试使用以下命令编译我的 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

4 回答 4

13

如果您使用的是 CMake

find_package(CUDA  REQUIRED)
include_directories("${CUDA_INCLUDE_DIRS}")
于 2017-04-13T10:00:13.497 回答
10

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

gcc -std=c99 -I/usr/local/cuda/include -o main -L. -ltest main.c
于 2012-10-31T21:45:55.737 回答
4

我们正在使用 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
于 2019-11-22T14:17:46.907 回答
0

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

于 2018-07-06T05:46:21.813 回答