cc1plus: fatal error: cuda_runtime.h: No such file or directory compilation terminated.

在安装mmdetection时遇到'cc1plus: fatal error: cuda_runtime.h: No such file or directory'的编译错误,环境为python 3.7.0、cuda 10.0、pytorch 1.3.1。尝试了调整cuda软链接和更新GCC版本未果。最终发现可能是系统或其他包不支持cuda 10,通过将cuda版本回退到9.2并更新.bashrc,重新安装pytorch和依赖后问题解决。
摘要由CSDN通过智能技术生成

完整问题:

cc1plus: fatal error: cuda_runtime.h: No such file or directory
compilation terminated.
error: command '/usr/local/cuda/bin/nvcc' failed with exit status 1

在安装mmdetection时出现此问题,

python setup.py develop

我的环境:
pyhton:3.7.0
cuda:10.0
pytorch: 1.3.1
gcc: 5.5.0
查了很多资料,有说cuda软连接的问题,有说GCC版本问题,都尝试过,不能解决问题,一些可以参考资料如下:
mmdetection
最后随便改了下cuda的版本到9.2就不出现bug啦,可能是因为系统版本或者其他包不能支持cuda10,因为我的系统中有多个cuda,所以方便修改,直接在.bashrc文件里面修改:

export P
### 回答1: 这个错误提示表示找不到cuda_runtime.h文件或者无法访问该文件。可能是CUDA没有正确安装,也可能是编译器没有正确的包含CUDA库文件路径。需要检查CUDA的安装目录和编译器的设置来排除问题。 ### 回答2: fatal error: cuda_runtime.h: no such file or directory是一个常见的错误消息,通常发生在基于CUDA的编程环境中。该错误可能是由以下几个原因引起的: 1.未安装CUDA Toolkit。在使用CUDA编程之前,必须先安装CUDA Toolkit,因为它包含必要的库文件和头文件。如果未安装CUDA Toolkit,则无法找到cuda_runtime.h文件。 2.未正确设置CUDA环境变量。在安装CUDA Toolkit后,必须设置CUDA的环境变量,以便编译器可以找到CUDA头文件、库文件和驱动程序。如果未正确设置CUDA环境变量,则编译器无法找到cuda_runtime.h文件。 3.使用错误的编译器或编译器选项。如果使用错误的编译器或编译器选项,则编译器可能无法找到cuda_runtime.h文件。确保使用适当的编译器和选项。 4.文件路径错误。如果cuda_runtime.h文件不在正确的路径中,则编译器无法找到它。确保文件路径正确。 要解决这个问题,您可以采取以下步骤: 1.确保您已经安装了CUDA Toolkit,并且已经正确设置了CUDA环境变量。 2.确保您正在使用适当的编译器和编译器选项。 3.检查cuda_runtime.h文件是否存在于正确的路径中。 4.如果您已经采取上述步骤,但仍然无法解决问题,请查看CUDA开发者论坛或向CUDA支持团队寻求帮助。他们可以为您提供更专业的支持和建议。 ### 回答3: 出现fatal error: cuda_runtime.h: no such file or directory这个错误,一般是因为未正确安装CUDA或者编译环境没有正确配置。下面就从这两方面进行详细解答。 1. 未正确安装CUDA 如果在Linux或者Windows系统上需要使用CUDA,那么需要先安装CUDA Toolkit。安装过程可以参考NVIDIA官方文档:https://docs.nvidia.com/cuda/index.html#installation-guides。如果是使用conda包管理器安装,可以使用以下命令: ``` conda install cudatoolkit=10.2 ``` 安装完成后,需要将CUDA相关路径添加到系统环境变量中,这样编译器才能找到CUDA相关文件。 2. 编译环境没有正确配置 如果已经安装CUDA,但是仍然出现了fatal error: cuda_runtime.h: no such file or directory这个错误,那么很可能是编译器没有正确配置CUDA的路径。在Linux和Windows系统上,需要将CUDA相关的路径添加到系统环境变量中。 以Linux为例,需要将以下环境变量添加到~/.bashrc文件中: ``` export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH ``` 如果使用的是nvcc编译器,还需要设置CUDA_ARCH和NVCCFLAGS环境变量: ``` export CUDA_ARCH="-gencode=arch=compute_30,code=sm_30" export NVCCFLAGS="$NVCCFLAGS $CUDA_ARCH" ``` 如果使用的是gcc或者clang等其他编译器,那么需要在编译命令中添加以下参数: ``` -I/usr/local/cuda/include -L/usr/local/cuda/lib64 -lcudart ``` 总之,需要保证编译器可以正确地找到CUDA相关的头文件和库文件。 除此之外,还有一些情况可能会导致该错误的出现,如CUDA版本不兼容、系统环境配置有误等等。因此,在出现该错误时,需要仔细检查CUDA是否正确安装,并检查编译环境配置是否正确。如果还是无法解决问题,可以查看编译日志,看看哪里出了问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值