DCNv2 ninja: build stopped: subcommand failed. Error compiling objects for extension的解决方法

遇到问题

最近用到了FairMOT, 其中里面需要安装可变形卷积 DCNv2, 原本的环境是Cuda 10.1+pytorch 1.7,安装过程中一直报错ninja: build stopped: subcommand failed. Runtime Error:Error compiling objects for extension.
一开始是这样
DCNv2 ninja: build stopped: subcommand failed. Error compiling objects for extension的解决方法_第1张图片
最后的结果
DCNv2 ninja: build stopped: subcommand failed. Error compiling objects for extension的解决方法_第2张图片
在一下几个repo里查了很多issue,其中有说降pytorch版本的,有说在多试了以下几个repo的不同版本安装成功了,但对我来说都没有作用,后来考虑把cuda 升到10.2, 安装仍然失败。

  1. https://github.com/lbin/DCNv2
    2 https://github.com/ifzhang/DCNv2/tree/pytorch_1.7
    3 https://github.com/jinfagang/DCNv2_latest

最终解决

直到我看到了这个博客,最终才解决了。
分析图一中报的错误,虽然使用nvcc -V能显示cuda的版本,但可能由于cuda_home的路径定义问题,编译时找不到nvcc的路径,最终的解决方法就是在 ~/.bashrc 中直接写出CUDA的路径,

# export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
# 将上面注释,直接写CUDA_HOME的路径
export CUDA_HOME=/usr/local/cuda

然后执行

source ~/.bashrc

再次
./make.sh

然后就成功啦, 最后总结:源码 :https://github.com/ifzhang/DCNv2/tree/pytorch_1.7 + pytorch 1.7 torchvision 0.8 + cuda 10.2 + 正确的CUDA_HOME
DCNv2 ninja: build stopped: subcommand failed. Error compiling objects for extension的解决方法_第3张图片

你可能感兴趣的:(DCNv2,安装问题,深度学习,ubuntu,linux)