如何强制gcc查看cuda_runtime.h的/ usr / cuda / local / include? p>
我正在尝试使用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
答案 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版本)。设置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