如何强制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)
如果您使用的是CMake
find_package(CUDA REQUIRED)
include_directories("${CUDA_INCLUDE_DIRS}")
Run Code Online (Sandbox Code Playgroud)