我尝试在windows和Linux操作系统上都配置了一下,在Windows上配置的时候直接运行./make.sh可以成功,但是在Linux上却报错了,我的Linux系统是Ubuntu,而且非root用户,系统使用的gcc版本是9.3.0。
gcc版本太高
1 | CUDA on Ubuntu: unsupported GNU version! gcc versions later than 7 are not supported! |
这个时候不要想着去找如何在非root用户下使用不同版本的gcc教程了,直接使用conda虚拟环境安装一个gcc,版本不要太高,5.4.0即可:
1 | conda install https://anaconda.org/brown-data-science/gcc/5.4.0/download/linux-64/gcc-5.4.0-0.tar.bz2 |
【踩坑史:】
我一开始也想着如何非root使用不同版本的gcc,查了关于如下的博客,但是还是失败了:
https://blog.csdn.net/littlehaes/article/details/103372007
https://zhuanlan.zhihu.com/p/162648425
https://blog.csdn.net/qq_43127685/article/details/103487524
https://blog.csdn.net/OliverkingLi/article/details/89645710
Ubuntu20.04 下手动编译安装gcc-6.3.0安装,多版本GCC 共存和切换
nvcc: not found
1 | vi ~/.bashrc |
将:
1 | export CUDA_HOME=$CUDA_HOME:/usr/local/cuda |
改为:
1 | export CUDA_HOME=/usr/local/cuda |
参考:
https://blog.csdn.net/loovelj/article/details/110490986
无root权限安装CUDA10.0以及gcc的降级+FairMOT构建DCNv2踩坑记录
致命错误: sys/cdefs.h:没有那个文件或目录
查阅了发现是当使用64位Ubuntu编译生成32位程序,在编译过程中报出这个错误。然后有好几个版本的解决办法,对我有效的是安装这个:
1 | sudo apt install libc6-dev-i386 |
参考:
https://blog.csdn.net/weixin_43904540/article/details/105916664
【踩坑史:】
我在解决这个问题之前查到还有说安装下面这两个包的,但是都无法成功:
1 | sudo apt-get install lib32readline-gplv2-dev |
报错如下:
找不到crti.o:没有这样的文件或目录
打开~/.bashrc,在尾部添加如下内容:
1 | LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH |
注意,修改了环境变量记得source ~/.bashrc才能生效。
参考:
https://qastack.cn/ubuntu/251978/cannot-find-crti-o-no-such-file-or-directory
ImportError: libcudart.so.10.0: cannot open shared object file: No such file or directory
打开~/.bashrc,在尾部添加如下内容:
1 | export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH |
注意,修改了环境变量记得source ~/.bashrc才能生效。
参考:
https://blog.csdn.net/weixin_38705903/article/details/103932179